Repository navigation
Fix public PKCE discovery compatibility - #8
Merged
Merged
Conversation
Allow public OAuth clients to acquire and refresh tokens when discovery omits none while retaining confidential-client method checks and validating metadata arrays. Add regression coverage for rotation, malformed metadata, trust checks, and canceled grant reuse, and document the fix in the changelog.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Public authorization-code + PKCE clients currently fail before authorization when discovery omits
none, as Keycloak does. Allow public acquisition and rotating refresh with that metadata or an omitted authentication-method property, while preserving confidential-client method checks and rejecting malformed arrays.Add regression coverage for explicit
none, Keycloak metadata, omitted metadata, refresh rotation, ambient credential isolation, issuer and endpoint validation, unsupported confidential authentication, and canceled authorization-grant reuse. Document the fix in the changelog.Validation: formatting, Ruff, mypy, all 250 tests (92.1% coverage), source/wheel builds, Twine checks, and wheel verification passed locally on Python 3.12.12. Discovery tests use HTTPX MockTransport; no live Keycloak instance was used.
Closes #6.