From: Georg Brandl Date: Wed, 7 Mar 2007 07:39:06 +0000 (+0000) Subject: Patch #812285: allow multiple auth schemes in AbstractBasicAuthHandler. X-Git-Tag: v2.6a1~2088 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=172e7257f65e5d37974aacf0c467e76a321ddf2c;p=python Patch #812285: allow multiple auth schemes in AbstractBasicAuthHandler. --- diff --git a/Lib/urllib2.py b/Lib/urllib2.py index 58b480dcb8..b0afac2cda 100644 --- a/Lib/urllib2.py +++ b/Lib/urllib2.py @@ -767,11 +767,10 @@ class HTTPPasswordMgrWithDefaultRealm(HTTPPasswordMgr): class AbstractBasicAuthHandler: - rx = re.compile('[ \t]*([^ \t]+)[ \t]+realm="([^"]*)"', re.I) + # XXX this allows for multiple auth-schemes, but will stupidly pick + # the last one with a realm specified. - # XXX there can actually be multiple auth-schemes in a - # www-authenticate header. should probably be a lot more careful - # in parsing them to extract multiple alternatives + rx = re.compile('(?:.*,)*[ \t]*([^ \t]+)[ \t]+realm="([^"]*)"', re.I) # XXX could pre-emptively send auth info already accepted (RFC 2617, # end of section 2, and section 1.2 immediately after "credentials"