Updated redirect arg handling to only happen when needed.
This commit is contained in:
parent
9a6e895368
commit
11ce460209
@ -236,6 +236,22 @@ func (p *OauthProxy) ManualSignIn(rw http.ResponseWriter, req *http.Request) (st
|
|||||||
return "", false
|
return "", false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *OauthProxy) GetRedirect(req *http.Request) (string, error) {
|
||||||
|
err := req.ParseForm()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
redirect := req.FormValue("rd")
|
||||||
|
|
||||||
|
if redirect == "" {
|
||||||
|
redirect = "/"
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect, err
|
||||||
|
}
|
||||||
|
|
||||||
func (p *OauthProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
|
func (p *OauthProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
|
||||||
// check if this is a redirect back at the end of oauth
|
// check if this is a redirect back at the end of oauth
|
||||||
remoteIP := req.Header.Get("X-Real-IP")
|
remoteIP := req.Header.Get("X-Real-IP")
|
||||||
@ -246,13 +262,14 @@ func (p *OauthProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
|
|||||||
|
|
||||||
var ok bool
|
var ok bool
|
||||||
var user string
|
var user string
|
||||||
redirect := req.FormValue("rd")
|
|
||||||
|
|
||||||
if redirect == "" {
|
|
||||||
redirect = "/"
|
|
||||||
}
|
|
||||||
|
|
||||||
if req.URL.Path == signInPath {
|
if req.URL.Path == signInPath {
|
||||||
|
redirect, err := p.GetRedirect(req)
|
||||||
|
if err != nil {
|
||||||
|
p.ErrorPage(rw, 500, "Internal Error", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
user, ok = p.ManualSignIn(rw, req)
|
user, ok = p.ManualSignIn(rw, req)
|
||||||
if ok {
|
if ok {
|
||||||
p.SetCookie(rw, req, user)
|
p.SetCookie(rw, req, user)
|
||||||
@ -263,8 +280,7 @@ func (p *OauthProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if req.URL.Path == oauthStartPath {
|
if req.URL.Path == oauthStartPath {
|
||||||
// get the ?rd= value
|
redirect, err := p.GetRedirect(req)
|
||||||
err := req.ParseForm()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
p.ErrorPage(rw, 500, "Internal Error", err.Error())
|
p.ErrorPage(rw, 500, "Internal Error", err.Error())
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user