New submission from Kuno Woudt <k...@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 <rep...@bugs.python.org>
<http://bugs.python.org/issue9714>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to