Spring Websocket с безопасностью Stomp - каждый пользователь может подписаться на очередь других пользователей?
Я создал простое приложение, которое использует механизм websockets из Spring 4. Я использую в своем приложении брокер activemq.
В моем простом тесте я создаю 10 сообщений для пользователя с именем "Alejando" (user / alejandro / queue / greetings)
Когда я вхожу с "Алехандо" и подписываюсь на эту очередь:
stompClient.subscribe('/user/alejandro/queue/greetings', function(greeting){
showGreeting(JSON.parse(greeting.body).content);
});
Я действительно получаю все 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();
}
}