java – 具有stomp安全性的Spring websocket – 每个用户都可以订阅任何其他用户队列?

前端之家收集整理的这篇文章主要介绍了java – 具有stomp安全性的Spring websocket – 每个用户都可以订阅任何其他用户队列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我创建了一个使用弹簧4的腹板机构的简单应用程序.
我在我的应用程序中使用activemq代理.

在我的简单测试中,我为名为“Alejando”的用户创建了10条消息(user / alejandro / queue / greetings)

当我使用“Alejando”登录订阅该队列时:

  stompClient.subscribe('/user/alejandro/queue/greetings',function(greeting){
                  showGreeting(JSON.parse(greeting.body).content);
  }); 

我确实收到了为alejandro征服的所有10条消息.

问题是,当我使用名为“evilBart”的其他用户登录订阅alejandro队列时,我也会收到消息?

我该如何执行安全措施?我希望用户只能订阅自己的队列.

谢谢!

我的配置类:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
    config.enableStompBrokerRelay("/queue/","/topic","/user/");     
    config.setApplicationDestinationPrefixes("/app");
}

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/hello").withSockJS();
}

}
最佳答案
检查此similar question:您必须使用Spring Security通过HTTP对用户进行身份验证,然后使用SimpMessageTemplate.convertAndSendToUser()方法用户发送消息.

猜你在找的Spring相关文章