@@ -60,6 +60,7 @@ type OAuthProxy struct {
6060 serveMux http.Handler
6161 PassBasicAuth bool
6262 SkipProviderButton bool
63+ PassUserHeaders bool
6364 BasicAuthPassword string
6465 PassAccessToken bool
6566 CookieCipher *cookie.Cipher
@@ -194,6 +195,7 @@ func NewOAuthProxy(opts *Options, validator func(string) bool) *OAuthProxy {
194195 skipAuthRegex: opts.SkipAuthRegex,
195196 compiledRegex: opts.CompiledRegex,
196197 PassBasicAuth: opts.PassBasicAuth,
198+ PassUserHeaders: opts.PassUserHeaders,
197199 BasicAuthPassword: opts.BasicAuthPassword,
198200 PassAccessToken: opts.PassAccessToken,
199201 SkipProviderButton: opts.SkipProviderButton,
@@ -602,6 +604,12 @@ func (p *OAuthProxy) Authenticate(rw http.ResponseWriter, req *http.Request) int
602604 req.Header["X-Forwarded-Email"] = []string{session.Email}
603605 }
604606 }
607+ if p.PassUserHeaders {
608+ req.Header["X-Forwarded-User"] = []string{session.User}
609+ if session.Email != "" {
610+ req.Header["X-Forwarded-Email"] = []string{session.Email}
611+ }
612+ }
605613 if p.PassAccessToken && session.AccessToken != "" {
606614 req.Header["X-Forwarded-Access-Token"] = []string{session.AccessToken}
607615 }