1
0
mirror of https://github.com/oauth2-proxy/oauth2-proxy.git synced 2025-08-08 22:46:33 +02:00

add --proxy-host-header option

This commit is contained in:
Jehiah Czebotar
2015-03-17 15:15:15 -04:00
parent 24ef555547
commit 263e16eeea
7 changed files with 45 additions and 29 deletions

View File

@@ -47,13 +47,14 @@ type OauthProxy struct {
}
func NewReverseProxy(target *url.URL) (proxy *httputil.ReverseProxy) {
proxy = httputil.NewSingleHostReverseProxy(target)
director := proxy.Director
proxy.Director = func(req *http.Request) {
director(req)
req.Host = target.Host
}
return proxy
return httputil.NewSingleHostReverseProxy(target)
}
func setProxyUpstreamHostHeader(proxy *httputil.ReverseProxy, target *url.URL) {
director := proxy.Director
proxy.Director = func(req *http.Request) {
director(req)
req.Host = target.Host
}
}
func NewOauthProxy(opts *Options, validator func(string) bool) *OauthProxy {
@@ -64,7 +65,11 @@ func NewOauthProxy(opts *Options, validator func(string) bool) *OauthProxy {
path := u.Path
u.Path = ""
log.Printf("mapping path %q => upstream %q", path, u)
serveMux.Handle(path, NewReverseProxy(u))
proxy := NewReverseProxy(u)
if !opts.PassHostHeader {
setProxyUpstreamHostHeader(proxy, u)
}
serveMux.Handle(path, proxy)
}
for _, u := range opts.CompiledRegex {
log.Printf("compiled skip-auth-regex => %q", u)