]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Two small changes, SF bug #974757 and SF patch #1037974.
authorJeremy Hylton <jeremy@alum.mit.edu>
Wed, 22 Dec 2004 14:27:19 +0000 (14:27 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Wed, 22 Dec 2004 14:27:19 +0000 (14:27 +0000)
Pass the full URL to find_user_password(), in particular so that hosts
with port numbers can be looked up.

Also specify the digest algorithm, even if it's MD5.  Titus Brown
verified that this fixes a problem with LiveJournal.

Lib/urllib2.py

index 644b3802d067fbb3ab17306eb5076165978c1515..5443d0b49f23567a280c18e0f4b84c7e518085d6 100644 (file)
@@ -720,7 +720,10 @@ class AbstractBasicAuthHandler:
                     return self.retry_http_basic_auth(host, req, realm)
 
     def retry_http_basic_auth(self, host, req, realm):
-        user,pw = self.passwd.find_user_password(realm, host)
+        # TODO(jhylton): Remove the host argument? It depends on whether
+        # retry_http_basic_auth() is consider part of the public API.
+        # It probably is.
+        user, pw = self.passwd.find_user_password(realm, req.get_full_url())
         if pw is not None:
             raw = "%s:%s" % (user, pw)
             auth = 'Basic %s' % base64.encodestring(raw).strip()
@@ -877,13 +880,12 @@ class AbstractDigestAuthHandler:
                'response="%s"' % (user, realm, nonce, req.get_selector(),
                                   respdig)
         if opaque:
-            base = base + ', opaque="%s"' % opaque
+            base += ', opaque="%s"' % opaque
         if entdig:
-            base = base + ', digest="%s"' % entdig
-        if algorithm != 'MD5':
-            base = base + ', algorithm="%s"' % algorithm
+            base += ', digest="%s"' % entdig
+        base += ', algorithm="%s"' % algorithm
         if qop:
-            base = base + ', qop=auth, nc=%s, cnonce="%s"' % (ncvalue, cnonce)
+            base += ', qop=auth, nc=%s, cnonce="%s"' % (ncvalue, cnonce)
         return base
 
     def get_algorithm_impls(self, algorithm):