@@ -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 }
0 commit comments