1
我有一个Java套接字API应用程序,它处理来自用户的套接字请求并发送响应。 我有一个配置者:如何防止订阅spring socket/queue/private/*目标。
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
private static final Logger LOGGER = Logger.getLogger(WebSocketConfig.class);
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/queue");
config.setApplicationDestinationPrefixes("/server_in");
config.setUserDestinationPrefix("/user");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/websocket").withSockJS();
}
}
当我发送响应用户i执行以下操作: this.simpMessagingTemplate.convertAndSend("/queue/private/user_"+secret_key, socketResponse);
在客户端,我有以下代码:
sc.subscribe('/queue/private/user_'+secret_key, function (greeting) {
console.log(greeting.body);
});
和响应的处理成功。 但问题是,其他用户也可以订阅“/队列/私人/ *”的目的地和处理私人消息。
sc.subscribe('/queue/private/*', function (greeting) {
console.log(greeting.body);
});
我该如何评估这种行为?