Repository navigation
fix(auth): align /token and /revoke error codes with RFC 6749 and RFC 7009 (#3723) - #3733
nikolas-sapa wants to merge 1 commit into
Conversation
|
This PR has been closed automatically. This repo only keeps pull requests open when they come from a maintainer, or from a contributor a maintainer has assigned to the linked issue, and you aren't currently assigned to #3723. If a maintainer assigns you to #3723, this PR reopens on its own and there's nothing more you need to do here. Assignment is a maintainer call based on capacity; comments that only ask to be assigned don't factor in. What does help is engaging on the issue itself by confirming the repro, explaining why it matters for your use case, or describing the approach you'd take. You're welcome to keep pushing commits here (just avoid force-pushing, since GitHub can't reopen a rewritten branch), but that on its own won't get the PR reviewed or the issue assigned, and realistically most auto-closed PRs stay closed. There's no need to open a new PR either way. CONTRIBUTING.md has the full reasoning, but in short:
Maintainers: reopen, remove |
Summary
Closes #3723.
This PR aligns the error responses returned by the built-in authorization server on
/tokenand/revokewith RFC 6749 §5.2 and RFC 7009 §2.2.1:/tokenwith grant supported by server but unauthorized for client: returnserror="unauthorized_client"instead ofunsupported_grant_type(RFC 6749 §5.2: "The authenticated client is not authorized to use this authorization grant type")./tokenwith grant unsupported by server (e.g.client_credentials,password, unknown): returnserror="unsupported_grant_type"instead of failing Pydantic union validation withinvalid_request(RFC 6749 §5.2: "The authorization grant type is not supported by the authorization server")./revokewith client authentication failure: returnserror="invalid_client"instead ofunauthorized_client(RFC 7009 §2.2.1 / RFC 6749 §5.2). Addedinvalid_clientandunsupported_token_typetoRevocationErrorResponse.WWW-Authenticateheader on HTTP 401: when a client attempts to authenticate viaAuthorization: Basic ...on/tokenor/revokeand authentication fails, the response now includesWWW-Authenticate: Basic realm="OAuth"per RFC 6749 §5.2.Test Plan
tests/server/auth/test_error_handling.pycovering all four cases (verified failing RED on base, passing GREEN on fix).tests/server/auth/test_identity_assertion.pytesting unauthorized client registration.tests/server/authandtests/interaction/auth: 176 passed.ruff checkandruff format --check: clean.pyright: 0 errors, 0 warnings.