chore: refactor OAuth client authorization api#1009
Draft
jamadeo wants to merge 1 commit into
Draft
Conversation
`OAuthState::start_authorization` now accepts a declarative `AuthorizationRequest` describing the client's available identity material and selects the highest-priority mechanism the server supports: pre-registered client information → Client ID Metadata Documents (SEP-991) → Dynamic Client Registration. This replaces the three mechanism-specific entry points (`start_authorization`, `start_authorization_with_metadata_url`, `start_authorization_with_preregistered_client`), where callers previously had to know which mechanism to pick. `AuthorizationSession::new` is consolidated the same way, and the failure-recovery pattern from #994 (returning the manager alongside the error so `OAuthState` recovers to `Unauthorized` on transient failures) is now applied across all registration paths. Includes new `RecordingOAuthHttpClient`-based tests covering the priority matrix and recovery semantics, plus updated docs, examples, and conformance client.
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.
OAuthState::start_authorizationnow accepts a declarativeAuthorizationRequestdescribing the client's available identity material and selects the highest-priority mechanism the server supports: pre-registered client information → Client ID Metadata Documents (SEP-991) → Dynamic Client Registration.This replaces the three specific entry points (
start_authorization,start_authorization_with_metadata_url,start_authorization_with_preregistered_client), where callers previously had to know which mechanism to pick.AuthorizationSession::newis consolidated the same way, and the failure-recovery pattern from #994 (returning the manager alongside the error soOAuthStaterecovers toUnauthorizedon transient failures) is now applied across all registration paths. Includes newRecordingOAuthHttpClient-based tests covering the priority matrix and recovery semantics, plus updated docs, examples, and conformance client.closes #1006
Motivation and Context
Improving the authorization API for v3.
How Has This Been Tested?
Breaking Changes
Yes, the auth client code will need some changes.
Types of changes
Checklist
Additional context