代码之家  ›  专栏  ›  技术社区  ›  Jon Freedman

WebSocket握手期间出错:“Sec WebSocket Accept”标头值不正确

  •  0
  • Jon Freedman  · 技术社区  · 6 年前

    Error during WebSocket handshake: Incorrect 'Sec-WebSocket-Accept' header value .

    @stomp/stompjs 4.0.8和设置 stompClient.reconnect_delay = 5000

    有什么办法解决这个问题吗?我担心在负载平衡器后面运行这个会导致这个错误一直发生。

    这是基于 the messaging-stomp-websocket example spring-security websocket-authentication

    1 回复  |  直到 6 年前
        1
  •  2
  •   Jon Freedman    6 年前

    看来spring security web RequestCacheAwareFilter 提取导致实际 Sec-WebSocket键 标头值被替换为无效值。

    事件的顺序是,每次客户机尝试重新连接时,客户机都会发出两个websocket请求,第一个请求会被拒绝 Sec-WebSocket键

    我可以通过完全禁用缓存来解决这个问题,例如在 WebSecurityConfigurerAdapter

    @Override
    protected void configure(final HttpSecurity http) throws Exception {
        http.requestCache().requestCache(new NullRequestCache())
    }