diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2004-12-22 14:27:19 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2004-12-22 14:27:19 (GMT) |
commit | b300ae3a79624867cad30fddfb3350f9c731f21c (patch) | |
tree | 786f69a7db81e9c5650868c373f9940066d22a9e /Lib/urllib2.py | |
parent | 6414cd8717dfc923b22d8541db1f6e9ebb8dc023 (diff) | |
download | cpython-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/urllib2.py')
-rw-r--r-- | Lib/urllib2.py | 14 |
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): |