Fix s-maxage not respected with Authorization headers #12668
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.
According to RFC 7234 section 3.2, a shared cache can serve cached
responses to requests with Authorization headers if the response contains
one of the following Cache-Control directives: must-revalidate,
proxy-revalidate, public, or s-maxage. The implementation was missing the
check for s-maxage, causing requests with Authorization headers to always
bypass the cache even when s-maxage was present in the cached response.
This commit adds the missing check for s-maxage in the AuthenticationNeeded()
function and includes comprehensive tests to verify the fix and prevent
regression.
Fixes: #7227