fix(api): logout's post_logout_redirect_uri uses FrontendURL, not BackendURL
Same class of bug as the OIDC callback fix: handleSessionLogout redirected Keycloak's end-session flow back to BackendURL+"/", which 404s in a split-origin deployment (the backend serves no "/" route). Flagged as a known-deferred question in the callback-redirect design spec; fixing it now that it's been hit in practice. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -923,3 +923,13 @@ func TestSessionLogout_ClearsSessionCookieAndRedirectsToEndSession(t *testing.T)
|
||||
t.Fatalf("expected session cookie to be cleared, got %+v", cleared)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSessionLogout_PostLogoutRedirectUsesFrontendURL(t *testing.T) {
|
||||
verifier := &authmock.Verifier{} // EndSessionResult unset: echoes back postLogoutRedirectURL unchanged
|
||||
s, _ := newTestServerWithAuth(t, verifier)
|
||||
rec := doJSON(t, s.Router(), http.MethodPost, "/api/session/logout", nil)
|
||||
|
||||
if rec.Code != http.StatusFound || rec.Header().Get("Location") != testSessionConfig.FrontendURL+"/" {
|
||||
t.Fatalf("status = %d, Location = %q, want post_logout_redirect_uri = %q", rec.Code, rec.Header().Get("Location"), testSessionConfig.FrontendURL+"/")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user