Skip to main content

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

www-authenticate-0.9.2.tar.gz (2.4 kB view details)

Uploaded Source

File details

Details for the file www-authenticate-0.9.2.tar.gz.

File metadata

File hashes

Hashes for www-authenticate-0.9.2.tar.gz
Algorithm Hash digest
SHA256 cf75fc2ea5effb0f9342d7de7619b736f2a7d4b223331a53e296863a286e9dcb
MD5 42557d5d1f8ea37996e666039207d902
BLAKE2b-256 a72d5567291a8274ef5d9b6495a1ec341394ab68933e2396936755b157f87b43

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.9.2 This release

1 file

0.9.1

1 file

0.9

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page