mirror of
https://github.com/openfaas/faas.git
synced 2025-06-18 03:56:37 +00:00
Remove Content-Type forwarding from Request
Signed-off-by: Eric Stoekl <ems5311@gmail.com>
This commit is contained in:
@ -160,10 +160,6 @@ func invokeService(w http.ResponseWriter, r *http.Request, metrics metrics.Metri
|
|||||||
clientHeader := w.Header()
|
clientHeader := w.Header()
|
||||||
copyHeaders(&clientHeader, &response.Header)
|
copyHeaders(&clientHeader, &response.Header)
|
||||||
|
|
||||||
defaultHeader := "text/plain"
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", GetContentType(response.Header, r.Header, defaultHeader))
|
|
||||||
|
|
||||||
writeHead(service, metrics, response.StatusCode, w)
|
writeHead(service, metrics, response.StatusCode, w)
|
||||||
|
|
||||||
if response.Body != nil {
|
if response.Body != nil {
|
||||||
@ -171,23 +167,6 @@ func invokeService(w http.ResponseWriter, r *http.Request, metrics metrics.Metri
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetContentType resolves the correct Content-Tyoe for a proxied function
|
|
||||||
func GetContentType(request http.Header, proxyResponse http.Header, defaultValue string) string {
|
|
||||||
responseHeader := proxyResponse.Get("Content-Type")
|
|
||||||
requestHeader := request.Get("Content-Type")
|
|
||||||
|
|
||||||
var headerContentType string
|
|
||||||
if len(responseHeader) > 0 {
|
|
||||||
headerContentType = responseHeader
|
|
||||||
} else if len(requestHeader) > 0 {
|
|
||||||
headerContentType = requestHeader
|
|
||||||
} else {
|
|
||||||
headerContentType = defaultValue
|
|
||||||
}
|
|
||||||
|
|
||||||
return headerContentType
|
|
||||||
}
|
|
||||||
|
|
||||||
func copyHeaders(destination *http.Header, source *http.Header) {
|
func copyHeaders(destination *http.Header, source *http.Header) {
|
||||||
for k, v := range *source {
|
for k, v := range *source {
|
||||||
vClone := make([]string, len(v))
|
vClone := make([]string, len(v))
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
package tests
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/openfaas/faas/gateway/handlers"
|
|
||||||
)
|
|
||||||
|
|
||||||
func Test_GetContentType_UsesResponseValue(t *testing.T) {
|
|
||||||
request := http.Header{}
|
|
||||||
request.Add("Content-Type", "text/plain")
|
|
||||||
response := http.Header{}
|
|
||||||
response.Add("Content-Type", "text/html")
|
|
||||||
|
|
||||||
contentType := handlers.GetContentType(request, response, "default")
|
|
||||||
if contentType != response.Get("Content-Type") {
|
|
||||||
t.Errorf("Got: %s, want: %s", contentType, response.Get("Content-Type"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func Test_GetContentType_UsesRequest_WhenResponseEmpty(t *testing.T) {
|
|
||||||
request := http.Header{}
|
|
||||||
request.Add("Content-Type", "text/plain")
|
|
||||||
response := http.Header{}
|
|
||||||
response.Add("Content-Type", "")
|
|
||||||
|
|
||||||
contentType := handlers.GetContentType(request, response, "default")
|
|
||||||
if contentType != request.Get("Content-Type") {
|
|
||||||
t.Errorf("Got: %s, want: %s", contentType, request.Get("Content-Type"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func Test_GetContentType_UsesDefaultWhenRequestResponseEmpty(t *testing.T) {
|
|
||||||
request := http.Header{}
|
|
||||||
request.Add("Content-Type", "")
|
|
||||||
response := http.Header{}
|
|
||||||
response.Add("Content-Type", "")
|
|
||||||
|
|
||||||
contentType := handlers.GetContentType(request, response, "default")
|
|
||||||
if contentType != "default" {
|
|
||||||
t.Errorf("Got: %s, want: %s", contentType, "default")
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user