feat/p3.6-xservice-auth
main
Closes homelab#11 (P3.6)
SQS dispatcher hardcoded a JWT validator pointing at authentik.riotpiao.com/application/o/sqs/jwks/ — provider doesn't exist. Every SQS request got 403 regardless of token.
authentik.riotpiao.com/application/o/sqs/jwks/
sqsJWTAuth
/v1/*
<service>:read
<service>:write
internal/identity
NewDispatcher
*auth.Validator
10 new tests covering: missing headers, unknown service/resource, wrong verb, auth bypass when disabled, upstream proxying, header passthrough, capability mapping, identity header absence without auth.
Replace hardcoded SQS-only validator (pointed at non-existent sqs provider JWKS) with shared multi-issuer validator from proxy. Auth-required adapters now validate JWT and check capability (<service>:read for GET, <service>:write for POST). Identity headers injected on success. Auth-optional adapters unchanged. 10 new tests, 69% package coverage. Closes homelab#11 Co-authored-by: poimen <[email protected]>
No dependencies set.
The note is not visible to the blocked user.
Closes homelab#11 (P3.6)
Problem
SQS dispatcher hardcoded a JWT validator pointing at
authentik.riotpiao.com/application/o/sqs/jwks/— provider doesn't exist. Every SQS request got 403 regardless of token.Fix
sqsJWTAuthwith shared multi-issuer validator (same one/v1/*uses)<service>:read(GET) or<service>:write(POST)internal/identityfrom P3.4)NewDispatchernow takes*auth.Validatorparameter (nil = auth disabled)Tests
10 new tests covering: missing headers, unknown service/resource, wrong verb, auth bypass when disabled, upstream proxying, header passthrough, capability mapping, identity header absence without auth.