[CalendarServer-changes] [4342] CalendarServer/trunk/twistedcaldav/directory

source_changes at macosforge.org source_changes at macosforge.org
Mon Jun 15 18:14:55 PDT 2009


Revision: 4342
          http://trac.macosforge.org/projects/calendarserver/changeset/4342
Author:   cdaboo at apple.com
Date:     2009-06-15 18:14:54 -0700 (Mon, 15 Jun 2009)
Log Message:
-----------
Algorithm attribute is optional.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py
    CalendarServer/trunk/twistedcaldav/directory/oldappleopendirectory.py
    CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectory.py

Modified: CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py	2009-06-15 20:13:36 UTC (rev 4341)
+++ CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py	2009-06-16 01:14:54 UTC (rev 4342)
@@ -885,6 +885,8 @@
             # picky about exactly what it receives.
             #
             try:
+                if "algorithm" not in credentials.fields:
+                    credentials.fields["algorithm"] = "md5"
                 challenge = 'Digest realm="%(realm)s", nonce="%(nonce)s", algorithm=%(algorithm)s' % credentials.fields
                 response = (
                     'Digest username="%(username)s", '

Modified: CalendarServer/trunk/twistedcaldav/directory/oldappleopendirectory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/oldappleopendirectory.py	2009-06-15 20:13:36 UTC (rev 4341)
+++ CalendarServer/trunk/twistedcaldav/directory/oldappleopendirectory.py	2009-06-16 01:14:54 UTC (rev 4342)
@@ -1106,6 +1106,8 @@
             # picky about exactly what it receives.
             #
             try:
+                if "algorithm" not in credentials.fields:
+                    credentials.fields["algorithm"] = "md5"
                 challenge = 'Digest realm="%(realm)s", nonce="%(nonce)s", algorithm=%(algorithm)s' % credentials.fields
                 response = (
                     'Digest username="%(username)s", '

Modified: CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectory.py	2009-06-15 20:13:36 UTC (rev 4341)
+++ CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectory.py	2009-06-16 01:14:54 UTC (rev 4342)
@@ -82,7 +82,52 @@
 
             self.assertFalse(record.verifyCredentials(digested))
 
+        def test_validODDigest(self):
+            record = OpenDirectoryRecord(
+                service               = self.service(),
+                recordType            = DirectoryService.recordType_users,
+                guid                  = "B1F93EB1-DA93-4772-9141-81C250DA35B3",
+                nodeName              = "/LDAPv2/127.0.0.1",
+                shortNames            = ("user",),
+                authIDs               = set(),
+                fullName              = "Some user",
+                firstName             = "Some",
+                lastName              = "User",
+                emailAddresses        = set(("someuser at example.com",)),
+                calendarUserAddresses = set(("mailtoguid at example.com",)),
+                enabledForCalendaring = True,
+                memberGUIDs           = [],
+            )
 
+            digestFields = {
+                "username":"user",
+                "realm":"/Search",
+                "nonce":"ABC",
+                "uri":"/",
+                "response":"123",
+                "algorithm":"md5",
+            }
+
+            response = (
+                'Digest username="%(username)s", '
+                'realm="%(realm)s", '
+                'nonce="%(nonce)s", '
+                'uri="%(uri)s", '
+                'response="%(response)s",'
+                'algorithm=%(algorithm)s'
+            ) % digestFields
+
+            record.digestcache = {}
+            record.digestcache["/"] = response
+            digested = twisted.web2.auth.digest.DigestedCredentials("user", "GET", "example.com", digestFields, None)
+
+            self.assertTrue(record.verifyCredentials(digested))
+
+            # This should be defaulted
+            del digestFields["algorithm"]
+
+            self.assertTrue(record.verifyCredentials(digested))
+
         def test_queryDirectorySingleGUID(self):
             """ Test for lookup on existing and non-existing GUIDs """
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090615/f5e7a243/attachment-0001.html>


More information about the calendarserver-changes mailing list