From cf3a445656cfb3ec213f20886215063a39002fe5 Mon Sep 17 00:00:00 2001 From: Trong Huu Nguyen Date: Thu, 13 Jul 2023 12:43:24 +0200 Subject: [PATCH] fix(url/redirect): fallback url must be absolute --- pkg/url/redirect.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/url/redirect.go b/pkg/url/redirect.go index a7e03e2..e625b52 100644 --- a/pkg/url/redirect.go +++ b/pkg/url/redirect.go @@ -61,7 +61,7 @@ type SSOServerRedirect struct { } func NewSSOServerRedirect(config *config.Config) (*SSOServerRedirect, error) { - u, err := url.Parse(config.SSO.ServerDefaultRedirectURL) + u, err := url.ParseRequestURI(config.SSO.ServerDefaultRedirectURL) if err != nil { return nil, fmt.Errorf("parsing fallback redirect URL: %w", err) } @@ -113,7 +113,7 @@ func (h *SSOProxyRedirect) Canonical(r *http.Request) string { if err != nil { logInvalidRedirect(r, target, redirect.String()) } else { - // preserve path, query and fragment from redirect parameter to base redirect + // copy and preserve relevant parts from parsed redirect parameter to base redirect redirect.Path = redirectParamURL.Path redirect.RawQuery = redirectParamURL.RawQuery redirect.Fragment = redirectParamURL.Fragment