v1585
ruvnet/RuViewv1585Jun 3, 2026by github-actions[bot]
AI Summary
Fixes authentication to be case-insensitive according to RFC 6750.
Key Highlights
- Bearer scheme matching is now case-insensitive (bearer, BEARER, etc.).
- Added test coverage for case-insensitive bearer scheme handling.
New Features
- Case-insensitive Bearer authentication support.
Full Release Notes
Automated release from CI pipeline
**Changes:**
fix(auth): match the Bearer scheme case-insensitively (RFC 6750) (#929)
`require_bearer` parsed the Authorization header with
`strip_prefix("Bearer ")`, which is case-sensitive. Per RFC 6750 §2.1 /
RFC 7235 §2.1 the auth-scheme is case-insensitive, so a correct token sent
as `Authorization: bearer <token>` (or `BEARER`, or with extra whitespace)
was rejected with a confusing "invalid bearer token" 401 — needless friction
when setting up `RUVIEW_API_TOKEN` (the active #864/#924 theme).
Now the scheme is matched with `eq_ignore_ascii_case` and leading token
whitespace trimmed. The token comparison itself is unchanged — still exact
and constant-time (`ct_eq`) — so this does not weaken auth: a wrong token or
a non-Bearer scheme (`Basic …`) still returns 401.
New test `accepts_case_insensitive_bearer_scheme` covers `bearer`/`BEARER`/
extra-space (accept) and wrong-token/`Basic` (still reject). bearer_auth
suite: 9 passed.
**Docker Image:**
`ghcr.io/ruvnet/RuView:be48143f774770ad1b89f2491473306f55004847`