[CalendarServer-changes] [12411] twext/trunk/twext/who/test/auth_resource.rpy
source_changes at macosforge.org
source_changes at macosforge.org
Wed Mar 12 11:24:48 PDT 2014
Revision: 12411
http://trac.calendarserver.org//changeset/12411
Author: wsanchez at apple.com
Date: 2014-01-20 15:53:18 -0800 (Mon, 20 Jan 2014)
Log Message:
-----------
Add LDAP resources
Modified Paths:
--------------
twext/trunk/twext/who/test/auth_resource.rpy
Modified: twext/trunk/twext/who/test/auth_resource.rpy
===================================================================
--- twext/trunk/twext/who/test/auth_resource.rpy 2014-01-20 23:35:17 UTC (rev 12410)
+++ twext/trunk/twext/who/test/auth_resource.rpy 2014-01-20 23:53:18 UTC (rev 12411)
@@ -37,14 +37,24 @@
from twisted.web.static import Data
from twext.who.directory import DirectoryRecord
+
from twext.who.test.test_xml import xmlService as XMLDirectoryService
+
try:
+ from twext.who.ldap.test.test_service import BaseTestCase as LDAPScaffold
+ LDAPDirectoryService = LDAPScaffold.service
+
+except ImportError:
+ LDAPDirectoryService = None
+
+try:
from twext.who.opendirectory import (
DirectoryService as OpenDirectoryDirectoryService,
NoQOPDigestCredentialFactory,
)
except ImportError:
OpenDirectoryDirectoryService = None
+
from twext.who.checker import UsernamePasswordCredentialChecker
from twext.who.checker import HTTPDigestCredentialChecker
@@ -84,16 +94,25 @@
</head>
<body>
<ul>
+
<li>XML Directory Service</li>
<ul>
<li><a href="auth_resource.rpy/XMLBasic" >Basic </a></li>
<li><a href="auth_resource.rpy/XMLDigest">Digest</a></li>
</ul>
+
+ <li>LDAP Directory Service</li>
+ <ul>
+ <li><a href="auth_resource.rpy/LDAPBasic" >Basic </a></li>
+ <li><a href="auth_resource.rpy/LDAPDigest">Digest</a></li>
+ </ul>
+
<li>OpenDirectory Directory Service</li>
<ul>
- <li><a href="auth_resource.rpy/ODBasic" >Basic </a></li>
- <li><a href="auth_resource.rpy/ODDigest">Digest</a></li>
+ <li><a href="auth_resource.rpy/OpenDirectoryBasic" >Basic </a></li>
+ <li><a href="auth_resource.rpy/OpenDirectoryDigest">Digest</a></li>
</ul>
+
</ul>
</body>
</html>
@@ -102,66 +121,49 @@
type="text/html",
)
-xmlFileBasic = NamedTemporaryFile(delete=True)
-rootResource.putChild(
- "XMLBasic",
- HTTPAuthSessionWrapper(
- Portal(
- realm,
- [
- UsernamePasswordCredentialChecker(
- XMLDirectoryService(xmlFileBasic.name)
- )
- ]
- ),
- [BasicCredentialFactory("XML Basic Realm")]
- )
-)
-xmlFileDigest = NamedTemporaryFile(delete=True)
-rootResource.putChild(
- "XMLDigest",
- HTTPAuthSessionWrapper(
- Portal(
- realm,
- [
- HTTPDigestCredentialChecker(
- XMLDirectoryService(xmlFileDigest.name)
- )
- ]
- ),
- [DigestCredentialFactory("md5", "XML Digest Realm")]
- )
-)
+def addChild(name, method, service, credentialFactory=None):
+ if method == "Basic":
+ checker = UsernamePasswordCredentialChecker
+ defaultCredentialFactory = BasicCredentialFactory
-if OpenDirectoryDirectoryService is not None:
+ elif method == "Digest":
+ checker = HTTPDigestCredentialChecker
+ defaultCredentialFactory = (
+ lambda realmName: DigestCredentialFactory("md5", realmName)
+ )
+
+ if credentialFactory is None:
+ credentialFactory = defaultCredentialFactory
+
+ resourceName = "{0}{1}".format(name, method)
+ print "Adding resource:", resourceName
+
rootResource.putChild(
- "ODBasic",
+ resourceName,
HTTPAuthSessionWrapper(
- Portal(
- realm,
- [
- UsernamePasswordCredentialChecker(
- OpenDirectoryDirectoryService()
- )
- ]
- ),
- [BasicCredentialFactory("OpenDirectory Basic Realm")]
+ Portal(realm, [checker(service)]),
+ [credentialFactory("{0} {1} Realm".format(name, method))]
)
)
- rootResource.putChild(
- "ODDigest",
- HTTPAuthSessionWrapper(
- Portal(
- realm,
- [
- HTTPDigestCredentialChecker(
- OpenDirectoryDirectoryService()
- )
- ]
- ),
- [NoQOPDigestCredentialFactory("md5", "OpenDirectory Digest Realm")]
+
+xmlFileBasic = NamedTemporaryFile(delete=True)
+addChild("XML", "Basic", XMLDirectoryService(xmlFileBasic.name))
+
+xmlFileDigest = NamedTemporaryFile(delete=True)
+addChild("XML", "Digest", XMLDirectoryService(xmlFileDigest.name))
+
+if LDAPDirectoryService is not None:
+ addChild("LDAP", "Basic", LDAPDirectoryService())
+ addChild("LDAP", "Digest", LDAPDirectoryService())
+
+if OpenDirectoryDirectoryService is not None:
+ addChild("OpenDirectory", "Basic", OpenDirectoryDirectoryService())
+ addChild(
+ "OpenDirectory", "Digest", OpenDirectoryDirectoryService(),
+ credentialFactory=(
+ lambda realmName: NoQOPDigestCredentialFactory("md5", realmName)
)
)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/eacf64f1/attachment.html>
More information about the calendarserver-changes
mailing list