Repository navigation
docs: review documentation and spec-citation fixes - #690
Merged
Merged
Conversation
…d where nonces and trust mark status belong - client.BeginAuthorization: call it only from a request the user made on purpose and that's protected against CSRF, not a plain GET any page can trigger. - resource.NoRevocation: a token the authorization server revoked stays usable until it expires, which falls short of what a FAPI deployment expects of a resource server. - resource.Dependencies.Nonces: never the authorization server's own nonce store (RFC 9449 §8 and §9 keep them apart); serverresource.NewVerifier refuses that, a Verifier built directly can't tell. - federation.CheckTrustMarkStatus: call it after VerifyTrustMark, never instead of it. - README: Message Signing covers JAR and JARM; signed introspection responses aren't implemented. - A test comment still cited draft-07 of attestation-based client authentication; it's draft-12 §10.3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each of these was checked against the spec text: - RFC 9101 has no §5.3; the request object's client_id rule is §6.3. - request_uri at PAR is refused by RFC 9126 §2.1, and inside a request object by RFC 9101 §4, not RFC 9101 §5. - invalid_request_uri is defined in RFC 9101 §7, not RFC 9126 §2.3. - Resource-server DPoP nonces are RFC 9449 §9, not §8. - "At most one DPoP header" is RFC 9449 §4.3 check 1, not §7.1; the quoted "MUST NOT send this header field multiple times" isn't in the RFC. - at_hash: OIDC Core §3.1.3.8 lets a code-flow client validate it as §3.2.2.9 describes; it isn't REQUIRED for the code flow (§3.1.3.6). - azp: the current OIDC Core §3.1.3.7 has it at steps 4-5, not 9-10. - CIBA: one-time auth_req_id redemption is §10.1.1, poll mode §10.1, not §10.3 (Push Callback). - A256CBC-HS512 is RFC 7518 §5.2.5, and ECDH-ES+A256KW §4.6, not §5.2.3 and §4.7. - OpenID Federation: the Trust Mark kid rule is §7, the delegation validation steps §7.2.2 (the trust_mark_type match is step 8), and the delegation JWT's own rules §7.2.1. - RFC 8705 chain validation and revocation are §2.1, not §2.1.1; RFC 7592's registration access token is defined in §1.2; the "MUST NOT reply ... for a different user" rule is OIDC Core §3.1.2.2. - RFC 9449 §10.1 doesn't recommend the PAR DPoP proof over dpop_jkt; it says the proof "provides a stronger binding". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
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.



Batch I of the 2026-10-18 review: the missing documentation and the wrong spec citations. Comments, docs, and a few error-message citations only; no behaviour changes.
Missing documentation
client.BeginAuthorizationresource.NoRevocationresource.Dependencies.Noncesserverresourcerefuses that; aVerifierbuilt directly can't tell.federation.CheckTrustMarkStatusVerifyTrustMark, never instead of it.The review's other documentation items were already done: per-issuer stores (#680), the
WithQuerydoc (#685), and an emptyAllowedResources(already documented).Spec citations
A re-audit of about 140 citations against the published texts confirmed these wrong ones:
client_idrule is §6.3.request_uriis refused at PAR by RFC 9126 §2.1, and inside a request object by RFC 9101 §4.invalid_request_uriis defined in RFC 9101 §7, not RFC 9126 §2.3.auth_req_idredemption is §10.1.1 and poll mode §10.1, not §10.3 (Push Callback).kidrule is §7; delegation validation is §7.2.2 (the type match is step 8); the delegation JWT's own rules are §7.2.1.Testing
go vet ./...andgo test ./...pass.🤖 Generated with Claude Code