[New-bugs-announce] [issue9714] urllib2 digest authentication doesn't work when connecting to a Catalyst server.

Kuno Woudt report at bugs.python.org
Mon Aug 30 13:54:16 CEST 2010


New submission from Kuno Woudt <kuno at frob.nl>:

In the WWW-Authenticate header Catalyst::Authentication::Credential::HTTP sends the following value for qop:

qop="auth,auth-int"

This is identical to the example given in section 3.5 of the RFC (http://tools.ietf.org/html/rfc2617#section-3.5 ), so I assume this is correct.

urllib2 does not expect multiple values for qop, and only works when qop="auth".

I've managed to work around it with:

class DigestAuthHandler (urllib2.HTTPDigestAuthHandler):
    def get_authorization (self, req, chal):
        qop = chal.get ('qop', None)
        if qop and ',' in qop and 'auth' in qop.split (','):
            chal['qop'] = 'auth'

        return urllib2.HTTPDigestAuthHandler.get_authorization (self, req, chal)

----------
components: Library (Lib)
messages: 115207
nosy: warpr
priority: normal
severity: normal
status: open
title: urllib2 digest authentication doesn't work when connecting to a Catalyst server.
type: behavior
versions: Python 2.5, Python 2.6, Python 2.7, Python 3.1, Python 3.2, Python 3.3

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue9714>
_______________________________________


More information about the New-bugs-announce mailing list