java – HTTPS上的Websockets 403 Forbidden
发布时间:2020-12-14 23:34:45 所属栏目:Java 来源:网络整理
导读:我目前正在尝试在 spring boot 1.2应用程序中设置HTTPS.此应用程序使用大量websockets在两个服务器之间进行通信.当它在简单的HTTP上运行时一切正常,但是当我将其切换到HTTPS时,我在Firefox和Chrome上都遇到403 Forbidden错误(尚未在IE上测试过.)我有一个Simp
我目前正在尝试在
spring boot 1.2应用程序中设置HTTPS.此应用程序使用大量websockets在两个服务器之间进行通信.当它在简单的HTTP上运行时一切正常,但是当我将其切换到HTTPS时,我在Firefox和Chrome上都遇到403 Forbidden错误(尚未在IE上测试过.)我有一个SimpleCORSFilter设置,接受所有连接,所以我不要以为那是问题.通过HTTPS对同一服务器的所有RESTful请求都工作,它只是似乎被阻止的websockets.
这是我的WebSocket Spring配置 @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); config.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/simulation").withSockJS(); } } 这是我的前端websocket连接 socket = new SockJS(https://my.url + '/simulation'); stompClient = Stomp.over(socket); stompClient.debug = false; stompClient.connect({},function(frame) { stompClient.subscribe('/topic/',function(status){ // Do something with result }); }); 编辑:这是Chrome控制台中的错误 GET https://localhost:8090/simulation/info 403 (Forbidden) stomp.js:8 Whoops! Lost connection to undefined 编辑2:此错误似乎是最近从spring boot 1.1升级到spring boot 1.2的副作用.当我确定哪个依赖项导致错误时,我将更新. 解决方法
试试这个:
@Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/simulation").setAllowedOrigins("*").withSockJS(); } 请注意,允许所有来源的来源可能会施加跨站请求伪造.有关防御方法,请参阅https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |