fixup! Add support for the anchor redirects

This commit is contained in:
2025-03-18 01:59:31 +00:00
parent a3b8cbf9f3
commit f3bec6cf68
2 changed files with 13 additions and 13 deletions
+11 -11
View File
@@ -286,18 +286,18 @@ func (t *TraefikOidc) handleCallback(rw http.ResponseWriter, req *http.Request,
http.Error(rw, "Failed to save session", http.StatusInternalServerError)
return
}
// Redirect to original path or root
redirectPath := "/"
if incomingPath := session.GetIncomingPath(); incomingPath != "" && incomingPath != t.redirURLPath {
redirectPath = incomingPath
}
// Redirect to original path or root
redirectPath := "/"
if incomingPath := session.GetIncomingPath(); incomingPath != "" && incomingPath != t.redirURLPath {
redirectPath = incomingPath
}
// For redirecting, we need to ensure URL fragments are preserved
// To do this, we'll use a small JavaScript snippet that preserves any URL fragments
// This is necessary because URL fragments are not sent to the server
rw.Header().Set("Content-Type", "text/html; charset=utf-8")
rw.WriteHeader(http.StatusOK)
fmt.Fprintf(rw, `<!DOCTYPE html>
// For redirecting, we need to ensure URL fragments are preserved
// To do this, we'll use a small JavaScript snippet that preserves any URL fragments
// This is necessary because URL fragments are not sent to the server
rw.Header().Set("Content-Type", "text/html; charset=utf-8")
rw.WriteHeader(http.StatusOK)
fmt.Fprintf(rw, `<!DOCTYPE html>
<html>
<head>
<title>Authentication Complete</title>
+2 -2
View File
@@ -2132,11 +2132,11 @@ func TestHandleCallback_PreservesURLFragments(t *testing.T) {
if !strings.Contains(body, "/dashboard?param=value") {
t.Errorf("Response body doesn't contain the original redirect path")
}
if !strings.Contains(body, "window.location.hash") {
t.Errorf("Response doesn't contain JavaScript logic to preserve URL fragments")
}
if !strings.Contains(body, "redirectUrl.hash = window.location.hash") {
t.Errorf("Response doesn't contain logic to copy the fragment from current URL")
}