summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2004-12-22 14:27:19 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2004-12-22 14:27:19 (GMT)
commitb300ae3a79624867cad30fddfb3350f9c731f21c (patch)
tree786f69a7db81e9c5650868c373f9940066d22a9e /Lib
parent6414cd8717dfc923b22d8541db1f6e9ebb8dc023 (diff)
downloadcpython-b300ae3a79624867cad30fddfb3350f9c731f21c.zip
cpython-b300ae3a79624867cad30fddfb3350f9c731f21c.tar.gz
cpython-b300ae3a79624867cad30fddfb3350f9c731f21c.tar.bz2
Two small changes, SF bug #974757 and SF patch #1037974.
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.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/urllib2.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index 644b380..5443d0b 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -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):