(headers, headername='www-authenticate')
return retval
Returns a dictionary of dictionaries, one dict
    per auth_scheme.
Returns a dictionary of dictionaries, one dict
    per auth_scheme.
Returns a dictionary of dictionaries one dict per auth_scheme .
def _parse_www_authenticate(headers, headername='www-authenticate'):
    """Returns a dictionary of dictionaries, one dict
    per auth_scheme."""
    retval = {}
    if headers.has_key(headername):
        try:

            authenticate = headers[headername].strip()
            www_auth = USE_WWW_AUTH_STRICT_PARSING and WWW_AUTH_STRICT or WWW_AUTH_RELAXED
            while authenticate:
                # Break off the scheme at the beginning of the line
                if headername == 'authentication-info':
                    (auth_scheme, the_rest) = ('digest', authenticate)
                else:
                    (auth_scheme, the_rest) = authenticate.split(" ", 1)
                # Now loop over all the key value pairs that come after the scheme,
                # being careful not to roll into the next scheme
                match = www_auth.search(the_rest)
                auth_params = {}
                while match:
                    if match and len(match.groups()) == 3:
                        (key, value, the_rest) = match.groups()
                        auth_params[key.lower()] = UNQUOTE_PAIRS.sub(r'\1', value) # '\\'.join([x.replace('\\', '') for x in value.split('\\\\')])
                    match = www_auth.search(the_rest)
                retval[auth_scheme.lower()] = auth_params
                authenticate = the_rest.strip()

        except ValueError:
            raise MalformedHeader("WWW-Authenticate")
    return retval
def _parse_www_authenticate ( headers , headername = 'www-authenticate' ) : retval = { } if headers . has_key ( headername ) : try : authenticate = headers [ headername ] . strip ( ) www_auth = USE_WWW_AUTH_STRICT_PARSING and WWW_AUTH_STRICT or WWW_AUTH_RELAXED while authenticate : # Break off the scheme at the beginning of the line if headername == 'authentication-info' : ( auth_scheme , the_rest ) = ( 'digest' , authenticate ) else : ( auth_scheme , the_rest ) = authenticate . split ( " " , 1 ) # Now loop over all the key value pairs that come after the scheme, # being careful not to roll into the next scheme match = www_auth . search ( the_rest ) auth_params = { } while match : if match and len ( match . groups ( ) ) == 3 : ( key , value , the_rest ) = match . groups ( ) auth_params [ key . lower ( ) ] = UNQUOTE_PAIRS . sub ( r'\1' , value ) # '\\'.join([x.replace('\\', '') for x in value.split('\\\\')]) match = www_auth . search ( the_rest ) retval [ auth_scheme . lower ( ) ] = auth_params authenticate = the_rest . strip ( ) except ValueError : raise MalformedHeader ( "WWW-Authenticate" ) return retval