From 543c124bf909b8ab1b8a57b6907f83fe3322179b Mon Sep 17 00:00:00 2001 From: Or Koren Date: Tue, 27 Jun 2023 13:12:14 +0300 Subject: [PATCH] dont override Host when forward-proxying Signed-off-by: Or Koren --- interceptor/request_forwarder.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/interceptor/request_forwarder.go b/interceptor/request_forwarder.go index 3a4afae0..733f7947 100644 --- a/interceptor/request_forwarder.go +++ b/interceptor/request_forwarder.go @@ -18,14 +18,18 @@ func forwardRequest( ) { proxy := httputil.NewSingleHostReverseProxy(fwdSvcURL) proxy.Transport = roundTripper + superDirector := proxy.Director proxy.Director = func(req *http.Request) { + superDirector(req) req.URL = fwdSvcURL - req.Host = fwdSvcURL.Host req.URL.Path = r.URL.Path req.URL.RawQuery = r.URL.RawQuery // delete the incoming X-Forwarded-For header so the proxy // puts its own in. This is also important to prevent IP spoofing - req.Header.Del("X-Forwarded-For ") + req.Header.Del("Forwarded") + req.Header.Del("X-Forwarded-For") + req.Header.Del("X-Forwarded-Host") + req.Header.Del("X-Forwarded-Proto") } proxy.ErrorHandler = func(w http.ResponseWriter, r *http.Request, err error) { w.WriteHeader(502)