[PR #11129/c0449bb5 backport][3.12] Add preemptive authentication support to DigestAuthMiddleware #11131
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a backport of PR #11129 as merged into master (c0449bb).
What do these changes do?
It was discovered that
DigestAuthMiddleware
doesn't work for some servers because the original implementation didn't implement preemptive support.This PR adds preemptive authentication support to
DigestAuthMiddleware
, following RFC 7616 Section 3.6. The middleware now remembers successful authentication challenges and automatically includes the Authorization header in subsequent requests to the same protection space.Key changes:
preemptive
parameter toDigestAuthMiddleware
constructor (default:True
)domain
parameter from server challengesdomain
is specified, the entire origin becomes the protection spacestale
parameter to handle expired noncesAre there changes in behavior for the user?
Yes, but backwards compatible:
preemptive=False
)Related issue number
Fixes #11128