If you attempt to authenticate to Launchpad using a non-base64 encoded credentials, Launchpad tracebacks. E.g.
from zope.testbrowser.browser import Browser
browser = Browser()
browser.addHeader('Authorization', 'Basic email:password')
browser.open('http://launchpad.dev/people/+newteam')
Here's the traceback you get:
2007-10-10T13:35:12 ERROR SiteError http://launchpad.dev
Traceback (most recent call last):
File "/home/barry/projects/launchpad/mlist-experts/database/schema/../../lib/zope/publisher/publish.py", line 132, in publish
publication.beforeTraversal(request)
File "/home/barry/projects/launchpad/mlist-subs-3/lib/canonical/launchpad/webapp/publication.py", line 177, in beforeTraversal
p = prin_reg.authenticate(request)
File "/home/barry/projects/launchpad/mlist-subs-3/lib/canonical/launchpad/webapp/authentication.py", line 120, in authenticate
credentials = ILoginPassword(request, None)
File "/home/barry/projects/launchpad/mlist-experts/database/schema/../../lib/zope/interface/interface.py", line 675, in __call__
adapter = self.__adapt__(obj)
File "/home/barry/projects/launchpad/mlist-experts/database/schema/../../lib/zope/interface/interface.py", line 742, in __adapt__
adapter = hook(self, obj)
File "/home/barry/projects/launchpad/mlist-experts/database/schema/../../lib/zope/app/component/hooks.py", line 96, in adapter_hook
return siteinfo.adapter_hook(interface, object, name, default)
File "/home/barry/projects/launchpad/mlist-experts/database/schema/../../lib/zope/interface/adapter.py", line 415, in adapter_hook
adapter = factory(object)
File "/home/barry/projects/launchpad/mlist-experts/lib/zope/app/security/basicauthadapter.py", line 32, in __init__
lpw = request._authUserPW()
File "/home/barry/projects/launchpad/mlist-experts/database/schema/../../lib/zope/publisher/http.py", line 495, in _authUserPW
name, password = base64.decodestring(
File "base64.py", line 321, in decodestring
return binascii.a2b_base64(s)
Error: Incorrect padding
Related OOPS: OOPS-1146F13, OOPS-1188C1227
We may have turned basic auth off now, which would make this irrelevant?