Log the tokenexchange verifier's bounded rejection reason server-side
mapVerifyError's bounded reason (expired, keys_unavailable, unknown_origin, invalid_token) is never logged today — middleware.go and handler_token.go check the Validate error only for context cancellation, then write the 401 and drop it. With the one-shot JWKS fetch, a GitLab signing-key rotation becomes a 100% 401 storm with zero server-side log lines while Ready() stays green.
Proposed fix (from review on !950 (merged)):
- A WarnContext call in the middleware's rejection branch, logging the bounded reason (safe — the one-401 policy only constrains the wire, not server-side logs).
- A length-capped, quoted origin_claim field at the verifier's unknown-origin rejection specifically, so an operator has the one datum needed during an issuer-side origin rollout (a new origin value minted before this enum learns it), without touching the returned error.
Related to gitlab-org/gitlab#605903 (closed)