diff --git a/main.go b/main.go index 1c6e3bf..c81874f 100644 --- a/main.go +++ b/main.go @@ -37,7 +37,7 @@ func New(ctx context.Context, next http.Handler, config *Config, name string) (h func (p *Badger) ServeHTTP(rw http.ResponseWriter, req *http.Request) { cookie, err := req.Cookie(SessionCookieName) if err != nil { - originalRequestURL := url.QueryEscape(req.URL.String()) + originalRequestURL := url.QueryEscape(fmt.Sprintf("%s://%s%s", p.getScheme(req), req.Host, req.URL.RequestURI())) http.Redirect(rw, req, fmt.Sprintf("%s/auth/login?redirect=%s", p.appBaseUrl, originalRequestURL), http.StatusFound) return } @@ -57,3 +57,10 @@ func (p *Badger) ServeHTTP(rw http.ResponseWriter, req *http.Request) { p.next.ServeHTTP(rw, req) } + +func (p *Badger) getScheme(req *http.Request) string { + if req.TLS != nil { + return "https" + } + return "http" +}