微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当服务器需要区分大小写的标头时,Spring Cloud 网关无法建立 websocket 连接

如何解决当服务器需要区分大小写的标头时,Spring Cloud 网关无法建立 websocket 连接

我有一个具有 websocket 连接的第三方 web 应用程序。期望升级、连接头名称区分大小写。我使用 spring cloud gateway 作为这个 webapp 的反向代理。所有 http 调用都成功,但对于 websocket 请求,我收到以下错误

io.netty.handler.codec.http.websocketx.WebSocketClientHandshakeException: 无效的握手响应 getStatus: 404 Not Found at io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker13.verify(WebSocketClientHandshaker13.java:272) ~[netty-codec-http-4.1.65.Final.jar:4.1.65

WebSocketClientHandshaker 正在设置升级和连接标头,它是小写的。如何覆盖这些标头值?

application.yml 配置如下

spring:
  main:
    web-application-type: reactive
  profiles:
    active: dev
  cloud:
    gateway:
      globalcors:
        corsConfigurations:
          '[/**]':
              allowedOrigins: "*"
              allowedMethods: "*"
              allowedHeaders: "*"
      httpclient:
        pool:
          max-idle-time: 10s
      ssl:
        useInsecureTrustManager: true
      filter:
        remove-non-proxy-headers:
          headers:
            - Keep-Alive
            - TE
            - Trailer
            - transfer-encoding
      routes:
        - id : no_op
          uri: no://op
          predicates:
            - Path=/falcon/tunneling/**
        - id: reroute_ws
          uri: ws://localhost:5555
          predicates:
            - Path=/websocket/**
        - id: reroute_2
          uri: http://localhost:5555
          predicates:
            - Path=/**

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。