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.
Metadata
Release files for www-authenticate 0.9.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| www-authenticate-0.9.2.tar.gz | 2.4 kB | Details |
Release files / www-authenticate-0.9.2.tar.gz
| Download URL | www-authenticate-0.9.2.tar.gz |
|---|---|
| Size | 2.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cf75fc2ea5effb0f9342d7de7619b736f2a7d4b223331a53e296863a286e9dcb
|
|
BLAKE2b-256 checksum How to use checksums |
a72d5567291a8274ef5d9b6495a1ec341394ab68933e2396936755b157f87b43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |