Java 仅当存在';这是该通道的端点

Java 仅当存在';这是该通道的端点,java,spring,Java,Spring,在我的spring boot应用程序中,我有以下websocket控制器: @Controller public class QuoteController { @Autowired private RabbitTemplate rabbitTemplate; @SubscribeMapping("/quote/{symbol}") public void singleQuote(@DestinationVariable("symbol") String sy

在我的spring boot应用程序中,我有以下websocket控制器:

@Controller
public class QuoteController {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @SubscribeMapping("/quote/{symbol}")
    public void singleQuote(@DestinationVariable("symbol") String symbol, Principal user) {
        System.out.println("Salam");
    }

}
我希望客户端能够订阅一个通道,前提是该通道存在如上所述的端点。显然(根据浏览器中的日志),客户端可以订阅任意频道


(顺便说一句,让客户端订阅任何频道不是一种不好的做法吗?特别是在安全方面。恶意客户端可以订阅数百万个频道并导致服务器速度降低,或者订阅仅供内部使用的频道)

您是如何在应用程序中创建这些频道的?难道不能像您的服务器有一个端点来返回可用频道那样简单,然后客户端代码只能使用这些频道进行订阅吗?可以,但它不会强制客户端只订阅这些频道。从顶部开始,您是否尝试为白名单创建拦截器?在请求到达订阅拦截器之前接受请求并使其失败?关于安全性:此文档声明您必须至少使用spring security来保护它;)