OIDC lazy refresh (margin-gated refresh_token grant, cookie re-issue, fail-closed 302) #26
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lab/authz-bridge!26
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/oidc-lazy-refresh"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #17
Adds the OIDC lazy refresh (keep-alive) on the
:8083Check path:id_token.exp − now < 60s(including already-expired), the Check renews the Session via therefresh_tokengrant using the client secret (asserted on the token-endpoint double's received form:grant_type=refresh_token, the exactrefresh_token,client_id,client_secret).OkHttpResponse.response_headers_to_add(Set-Cookie, Max-Age fromOidcSession.TTL, 12h default), then validates the NEWid_tokenwith the full JWKS check before OK + claim injection.Verified TDD-first: 8 new tests (near-expiry, expired, healthy-no-call, rejection 302, unreachable 302, mis-signed-renewed 302, no-refresh-token 302-without-a-call, mis-signed-not-just-old 302-without-a-call, no-rotation keeps the old refresh_token), plus
TestOIDCExpiredTokenIsA302updated to cover "expired without a usable refresh → 302". Full suite green (-p 1). Two-axis code review: no hard standard violations; noted for follow-up —TokenEndpointemptiness surfaces as a failed-refresh 302 rather than the 503 class (inherited from the steady-state availability gate).