From b300ae3a79624867cad30fddfb3350f9c731f21c Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Wed, 22 Dec 2004 14:27:19 +0000 Subject: [PATCH] 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. --- Lib/urllib2.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Lib/urllib2.py b/Lib/urllib2.py index 644b3802d06..5443d0b49f2 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):