Websocket CORS 配置 Spring boot
Posted
技术标签:
【中文标题】Websocket CORS 配置 Spring boot【英文标题】:Websocket CORS configuration 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”也一样。
我认为有些东西我误解了,但我不明白。
如果你能帮助我理解!任何帮助表示赞赏:)
【问题讨论】:
【参考方案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?
【讨论】:
以上是关于Websocket CORS 配置 Spring boot的主要内容,如果未能解决你的问题,请参考以下文章
Spring-websocket 配置 websocket发送消息(群发)
由于 CORS,Spring 和 React websocket 聊天无法正常工作