Add X-Forwarded-Host test when already present

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
This commit is contained in:
Stefan Prodan
2018-09-09 12:48:25 +03:00
committed by Alex Ellis
parent 3d44fa813a
commit 3e0ed5edd7
2 changed files with 18 additions and 2 deletions

View File

@ -103,8 +103,6 @@ func forwardRequest(w http.ResponseWriter, r *http.Request, proxyClient *http.Cl
ctx, cancel := context.WithTimeout(context.Background(), timeout) ctx, cancel := context.WithTimeout(context.Background(), timeout)
defer cancel() defer cancel()
log.Printf("Upstream request to: %s, %+v\n", upstreamReq.URL.Path, upstreamReq)
res, resErr := proxyClient.Do(upstreamReq.WithContext(ctx)) res, resErr := proxyClient.Do(upstreamReq.WithContext(ctx))
if resErr != nil { if resErr != nil {
badStatus := http.StatusBadGateway badStatus := http.StatusBadGateway

View File

@ -106,6 +106,24 @@ func Test_buildUpstreamRequest_XForwardedHostHeader_Empty_WhenNotSet(t *testing.
} }
} }
func Test_buildUpstreamRequest_XForwardedHostHeader_WhenAlreadyPresent(t *testing.T) {
srcBytes := []byte("hello world")
headerValue := "test.openfaas.com"
reader := bytes.NewReader(srcBytes)
request, err := http.NewRequest(http.MethodPost, "/function/test", reader)
if err != nil {
t.Fatal(err)
}
request.Header.Set("X-Forwarded-Host", headerValue)
upstream := buildUpstreamRequest(request, "/", "/")
if upstream.Header.Get("X-Forwarded-Host") != headerValue {
t.Errorf("X-Forwarded-Host - want: %s, got: %s", headerValue, upstream.Header.Get("X-Forwarded-Host"))
}
}
func Test_getServiceName(t *testing.T) { func Test_getServiceName(t *testing.T) {
scenarios := []struct { scenarios := []struct {
name string name string