(11/n) auth follow-up coverage and resource defaulting#24
Merged
Conversation
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.
Why
This follow-up locks down the auth behavior introduced by the client policy and client identity work, and fixes a client-compatibility issue where some OAuth clients omit the optional
resourceparameter on/ authorize.What changed
/authorizeresourcevalues to the instance's canonical/mcpresource before validation, logging, and auth-code issuance.error=invalid_target.resource_defaulted=true|falseto authorize request-log details.clients[]is configured/mcponceclients[]is configuredclients[]is absentHow
/authorizenow applies a canonical resource default immediately after parsing request parameters. That defaulted value flows through validation, request logging, rendered approval forms, andoauth.issueCode(...), so the resulting access token remains audience-bound to the current mvmt/mcpresource.The new tests exercise the behavior through the HTTP server rather than only the OAuth store, so auth middleware behavior and redirect responses are covered together.
Changed files
src/server/index.ts- default missing authorize resources and log whether the default path was used.tests/server.test.ts- add server-level coverage for resource defaulting, explicit resource mismatch, quarantined OAuth clients, session-token rejection withclients[], and legacy session access.CHANGELOG.md- document the OAuth client-compatibility change.Verification