You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Follow-up: RFC 8414 issuer normalization on the OAuth root fallback (trailing slash) + #4211 review LOWs #4345
Follow-up LOWs from the review of #4211 (CLEAR at c98eee2, Opus 5.5).
Trailing-slash issuer on the root fallback (oauth-issuer.ts:11-20). With no protected-resource metadata, the root fallback now rejects an authorization-server metadata issuer written as https://origin/ (Auth0's style) although that is the exact URL the SDK discovered. Before fix(mcp): validate OAuth metadata and bind credentials to issuers #4211 nothing compared issuers, so such servers worked. MCP 2026-07-28 requires the metadata anyway, so this is a narrow compatibility cost, not a security issue. Accept both origin and origin/ in that branch only (they name the same origin).
Refresh error names the same server twice (oauth-refresh.ts:96-103). When only the stored client registration belongs to another server and the grant's own stamp matches, the message reads "now uses authorization server X, but its saved sign-in was issued by X". Clearing the credentials is right; say that the registration was the mismatch.
Nit:4194-oauth-client-issuer.test.ts:13 ("does not declare a redirect application type for a client without redirects") also passes on the pre-fix code; it guards against regression rather than proving the fix.
Acceptance: a root-fallback server whose metadata issuer has a trailing slash connects; the registration-mismatch message names what mismatched.
Per the lead: the trailing-slash LOW is an RFC 8414 issuer normalization follow-up. RFC 8414 compares the metadata issuer with the issuer the client used by simple string comparison, and https://origin vs https://origin/ are different strings that name the same origin. Scope: normalize the empty-path issuer (origin ≡ origin/) on the root-fallback branch only (no protected-resource metadata), keep strict comparison for issuers with a path, and add RED tests for both an Auth0-style https://origin/ issuer and a path issuer that must stay strict.
Activity
code-yeongyu commentedon Oct 26, 2026
Per the lead: the trailing-slash LOW is an RFC 8414 issuer normalization follow-up. RFC 8414 compares the metadata
issuerwith the issuer the client used by simple string comparison, andhttps://originvshttps://origin/are different strings that name the same origin. Scope: normalize the empty-path issuer (origin≡origin/) on the root-fallback branch only (no protected-resource metadata), keep strict comparison for issuers with a path, and add RED tests for both an Auth0-stylehttps://origin/issuer and a path issuer that must stay strict.[-]Follow-up: #4211 review LOWs (trailing-slash issuer on root fallback, refresh mismatch message)[/-][+]Follow-up: RFC 8414 issuer normalization on the OAuth root fallback (trailing slash) + #4211 review LOWs[/+]