@@ -60,6 +60,7 @@ type OAuthProxy struct {
6060 HtpasswdFile *HtpasswdFile
6161 DisplayHtpasswdForm bool
6262 serveMux http.Handler
63+ SetXAuthRequest bool
6364 PassBasicAuth bool
6465 SkipProviderButton bool
6566 PassUserHeaders bool
@@ -198,6 +199,7 @@ func NewOAuthProxy(opts *Options, validator func(string) bool) *OAuthProxy {
198199 redirectURL: redirectURL,
199200 skipAuthRegex: opts.SkipAuthRegex,
200201 compiledRegex: opts.CompiledRegex,
202+ SetXAuthRequest: opts.SetXAuthRequest,
201203 PassBasicAuth: opts.PassBasicAuth,
202204 PassUserHeaders: opts.PassUserHeaders,
203205 BasicAuthPassword: opts.BasicAuthPassword,
@@ -361,6 +363,9 @@ func (p *OAuthProxy) SignInPage(rw http.ResponseWriter, req *http.Request, code
361363 rw.WriteHeader(code)
362364
363365 redirect_url := req.URL.RequestURI()
366+ if req.Header.Get("X-Auth-Request-Redirect") != "" {
367+ redirect_url = req.Header.Get("X-Auth-Request-Redirect")
368+ }
364369 if redirect_url == p.SignInPath {
365370 redirect_url = "/"
366371 }
@@ -663,6 +668,12 @@ func (p *OAuthProxy) Authenticate(rw http.ResponseWriter, req *http.Request) int
663668 req.Header["X-Forwarded-Email"] = []string{session.Email}
664669 }
665670 }
671+ if p.SetXAuthRequest {
672+ rw.Header().Set("X-Auth-Request-User", session.User)
673+ if session.Email != "" {
674+ rw.Header().Set("X-Auth-Request-Email", session.Email)
675+ }
676+ }
666677 if p.PassAccessToken && session.AccessToken != "" {
667678 req.Header["X-Forwarded-Access-Token"] = []string{session.AccessToken}
668679 }