From e0a1592e6e358bc01f4b89035b7ab3aeb073df2d Mon Sep 17 00:00:00 2001 From: Julien Salleyron Date: Tue, 17 Sep 2019 16:12:04 +0200 Subject: [PATCH] Fix case-sensitive header in websocket --- pkg/server/service/proxy.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/server/service/proxy.go b/pkg/server/service/proxy.go index a305fbb1d..c19bd124f 100644 --- a/pkg/server/service/proxy.go +++ b/pkg/server/service/proxy.go @@ -57,6 +57,11 @@ func buildProxy(passHostHeader bool, responseForwarding *dynamic.ResponseForward outReq.Host = outReq.URL.Host } + // Even if the websocket RFC says that headers should be case-insensitive, + // some servers need Sec-WebSocket-Key to be case-sensitive. + // https://tools.ietf.org/html/rfc6455#page-20 + outReq.Header["Sec-WebSocket-Key"] = outReq.Header["Sec-Websocket-Key"] + delete(outReq.Header, "Sec-Websocket-Key") }, Transport: defaultRoundTripper, FlushInterval: time.Duration(flushInterval),