Browse Source

skip certain headers while proxying websockets

pull/96/head
Spencer Gibb 7 years ago
parent
commit
17b1110464
No known key found for this signature in database
GPG Key ID: 7788A47380690861
  1. 10
      spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/WebsocketRoutingFilter.java

10
spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/WebsocketRoutingFilter.java

@ -70,7 +70,15 @@ public class WebsocketRoutingFilter implements GlobalFilter, Ordered { @@ -70,7 +70,15 @@ public class WebsocketRoutingFilter implements GlobalFilter, Ordered {
public ProxyWebSocketHandler(URI url, WebSocketClient client, HttpHeaders headers) {
this.client = client;
this.url = url;
this.headers = headers;
this.headers = new HttpHeaders();//headers;
//TODO: better strategy to filter these headers?
headers.entrySet().forEach(header -> {
if (!header.getKey().toLowerCase().startsWith("sec-websocket")
&& !header.getKey().equalsIgnoreCase("upgrade")
&& !header.getKey().equalsIgnoreCase("connection")) {
this.headers.addAll(header.getKey(), header.getValue());
}
});
List<String> protocols = headers.get(SEC_WEBSOCKET_PROTOCOL);
if (protocols != null) {
this.subProtocols = protocols;

Loading…
Cancel
Save