我创建了一个使用弹簧4的腹板机构的简单应用程序.
我在我的应用程序中使用activemq代理.
在我的简单测试中,我为名为“Alejando”的用户创建了10条消息(user / alejandro / queue / greetings)
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()方法向用户发送消息.