[twill] Bug? in HTTP Basic Authentication Handling

John J Lee jjl at pobox.com
Fri Mar 2 06:11:36 PST 2007


On Fri, 2 Mar 2007, subscriptions at smart-knowhow.de wrote:
[...]
> What I found seems to be curious: the password handler are coded in 
> _auth.py within mechanize. If I put debug code in the "add_password" 
> function of HTTPPasswordMgr then the corresponding code is executed if 
> is issue a "add_auth" command.

They are forked because the urllib2 code was buggy in 2.4.  I submitted 
the fixes to SF, and they're there in Python 2.5.  Also, ISTR I added a 
new proxy password manager to make the front-end proxy auth interface 
friendlier (probably I should have written a new one from scratch rather 
than derivint it from the urllib2 code...).


> The corresponding find_user_password function is never called (at least 
> in my case). I'm currently trying to figure out why...

That suggests you're not getting the expected 401 response from the 
server.

Turn on logging of HTTP request and response headers -- either in twill, 
or using a simple mechanize script like the one I posted.  To turn on the 
logging you need in mechanize:

import mechanize
hh = mechanize.HTTPHandler()
hsh = mechanize.HTTPHandler()
hh.set_http_debuglevel(1)
hsh.set_http_debuglevel(1)
opener = mechanize.build_opener(hh, hsh)

response = opener.open(url)
# etc.


John



More information about the twill mailing list