Parser for WWW-Authenticate headers.
Project description
Parsing WWW-Authenticate headers is difficult. Let this tiny library do all the hard work for you.
What’s so difficult?
The header contains a set of comma-separated challenges, but the parameters for each challenge are also comma-separated. Some challenges in the wild don’t have parameters, which violates the spec. The Negotiate challenge eschews the required name-value pairs and has a single string as its parameter.
Some servers may offer more challenges than you were expecting, but you’d still like to notice the one you care about.
Usage
It’s really easy:
import www_authenticate parsed = www_authenticate.parse(response.headers['WWW-Authenticate']) if 'Basic' in parsed: realm = parsed['Basic']['realm'] if 'Negotiate' in parsed: challenge = parsed['Negotiate']
The returned object is a collections.OrderedDict with authentication scheme names as keys. The values are either dictionaries, a single string, or None if there are no parameters.
Installation
This package is in PyPI. Install with:
$ pip install www-authenticate
There are no external dependencies.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.