【问题标题】:Websocket CORS configuration Spring bootWebsocket CORS 配置 Spring boot
【发布时间】:2021-06-14 05:31:16
【问题描述】:

我正在尝试在 Spring 引导服务器上使用 Websocket。

我想设置 allowedOrigins 以允许来自任何地方的连接,如下所示:

@Configuration @EnableWebSocketclass WSConfig : WebSocketConfigurer {
    override fun registerWebSocketHandlers(registry: WebSocketHandlerRegistry) {
        registry.addHandler(ChatHandler(), "/chat").setAllowedOrigins("*").withSockJS()
    }
}

但我收到此错误消息:

When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. 
To allow credentials to a set of origins, list them explicitly or consider using "allowedOriginPatterns" instead.] with root cause

问题是没有一种方法可以在 WebSocketConfigurer 上设置 allowedOriginPatterns。所以我不明白我应该如何管理这个。 “Access-Control-Allow-Origin”也一样。

我认为有些东西我误解了,但我不明白。

如果你能帮助我理解!任何帮助表示赞赏:)

【问题讨论】:

    标签: spring kotlin websocket cors


    【解决方案1】:

    已经有人回答了这个问题。我猜你正在使用更新版本的 Spring Boot (>5.3)。他们更改了代码中的某些内容,您必须使用

    registry.addHandler(ChatHandler(), "/chat").setAllowedOriginPatterns("*").withSockJS();
    

    只需将.setAllowedOrigins("*") 更改为.setAllowedOriginPatterns("*") 即可。

    根据这个帖子: How to handle CORS origins with Stomp and SockJS in Spring 5.3 and newer?

    【讨论】:

      猜你喜欢
      • 2021-11-09
      • 2018-06-21
      • 2020-01-09
      • 1970-01-01
      • 2019-05-05
      • 2019-08-01
      • 2019-08-15
      • 1970-01-01
      相关资源
      最近更新 更多