State-model amendment: resolve + carry end_session_endpoint #22
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!22
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/end-session-endpoint"
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 #13
What
State-model amendment: the leader's IdP discovery resolve also extracts
end_session_endpoint, and the OIDC section of the resolved state (RegistryEntry+ Snapshot) carries it — so RP-initiated logout (EndSession=true) works without a per-request discovery fetch. Additive to the already-built resolve step (discovery is already fetched; one more field extracted).Changes
internal/idp:discovery/ResolvedgainEndSessionEndpoint;validatedeliberately does not require it — an absentend_session_endpointresolves to the empty field, no error.internal/registry:Entry.OIDCcarriesEndSessionEndpoint(json:"endSessionEndpoint,omitempty"); the builder copies it from the resolved state into the OIDC section.internal/snapshot: the field rides the existingcopyEntrydeep copy (string value copy) — covered by the carried-section and isolation tests.Verification (per the ACs)
stubIdPdoubles:TestResolveReturnsEndSessionEndpoint(extracted) andTestResolveToleratesAnAbsentEndSessionEndpoint(absent → empty, no failure) ininternal/idp.Buildtest asserts the OIDC section carries the endpoint.leader_freshness_test.gogains a spec (client + OidcPolicy → OIDC section holds the resolved endpoint), and the existingoauthclient_controller_test.go/oidcpolicy_controller_test.goOIDC-section assertions assert it too.make test(full suite, envtest) green;make lintclean.