Cache RS256 JWKS by url to allow for multiple Auth0 tenants per runtime #325
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.
Fixes #324
Changes
The underlying issue is discussed in #324, but in summary, JWT validation using RS256 caches the JWKS for the entire runtime, even if multiple Auth0 tenants (varying JWKS URLs are in use). This change caches the JWKS per JWKS url instead of using just a generic cache key. This allows applications that use multiple Auth0 tenants to properly cache their JWKS and avoid unnecessary HTTP requests to pull the well-known JWKS. Otherwise, the JWKS cache thrashes itself while switching between multiple Auth0 tenants.
References
Fixes #324
Testing
Checklist