Skip to content

Commit 1183776

Browse files
authored
feat: Make PostLoginRedirectUri to support absolute uri (#122)
* feat(post-login-redirect): support for PostLoginRedirectUri to use absolute uri * refactor(post-login-redirect): improve readability and cleanliness * refactor(post-login-redirect): adapt EnsureAbsoluteUrl in utils to handle prefix
1 parent b67bf1a commit 1183776

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

main.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -394,9 +394,7 @@ func (toa *TraefikOidcAuth) redirectToProvider(rw http.ResponseWriter, req *http
394394
if redirectUrlFromQuery := req.URL.Query().Get("redirect_uri"); toa.Config.LoginUri != "" && strings.HasPrefix(req.RequestURI, toa.Config.LoginUri) && redirectUrlFromQuery != "" {
395395
redirectUrl = redirectUrlFromQuery
396396
} else if toa.Config.PostLoginRedirectUri != "" {
397-
host := utils.GetFullHost(req)
398-
postLoginUri, _ := strings.CutPrefix(toa.Config.PostLoginRedirectUri, "/")
399-
redirectUrl = fmt.Sprintf("%s/%s", host, postLoginUri)
397+
redirectUrl = utils.EnsureAbsoluteUrl(req, toa.Config.PostLoginRedirectUri)
400398
} else {
401399
host := utils.GetFullHost(req)
402400
redirectUrl = fmt.Sprintf("%s%s", host, req.RequestURI)

utils/utils.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@ func EnsureAbsoluteUrl(req *http.Request, url string) string {
7272
return url
7373
} else {
7474
host := GetFullHost(req)
75+
76+
if !strings.HasPrefix(url, "/") {
77+
url = "/" + url
78+
}
79+
7580
return host + url
7681
}
7782
}

0 commit comments

Comments
 (0)