Skip to content

Commit

Permalink
Fix case-sensitive header Sec-Websocket-Version
Browse files Browse the repository at this point in the history
  • Loading branch information
tbrandstetter committed Apr 21, 2020
1 parent fe5a4a2 commit 756aa82
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion pkg/server/service/proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,15 @@ func buildProxy(passHostHeader *bool, responseForwarding *dynamic.ResponseForwar
}

// Even if the websocket RFC says that headers should be case-insensitive,
// some servers need Sec-WebSocket-Key and Sec-WebSocket-Protocol to be case-sensitive.
// some servers need Sec-WebSocket-Key, Sec-WebSocket-Protocol and Sec-WebSocket-Version
// to be case-sensitive.
// https://tools.ietf.org/html/rfc6455#page-20
outReq.Header["Sec-WebSocket-Key"] = outReq.Header["Sec-Websocket-Key"]
outReq.Header["Sec-WebSocket-Protocol"] = outReq.Header["Sec-Websocket-Protocol"]
outReq.Header["Sec-WebSocket-Version"] = outReq.Header["Sec-Websocket-Version"]
delete(outReq.Header, "Sec-Websocket-Key")
delete(outReq.Header, "Sec-Websocket-Protocol")
delete(outReq.Header, "Sec-Websocket-Version")
},
Transport: defaultRoundTripper,
FlushInterval: time.Duration(flushInterval),
Expand Down

0 comments on commit 756aa82

Please sign in to comment.