0
AbstractWebSocketMessageBrokerConfigurer
(Spring Boot)有没有办法拦截用户注册到特定渠道?STOMP的Spring MVC Websockets - 针对特定渠道进行身份验证
我有使用HandshakeHandler在registerStompEndpoints
一个基本的身份验证完成:
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
HandshakeHandler handler = new DefaultHandshakeHandler() {
@Override
protected Principal determineUser(ServerHttpRequest request,
WebSocketHandler wsHandler, Map<String, Object> attributes) {
Principal principal = request.getPrincipal();
if (principal == null) {
return() -> getPrincipal();
}
return principal;
}
};
registry.addEndpoint("/websocket")
.setHandshakeHandler(handler)
.setAllowedOrigins("*").withSockJS();
}
现在我想阻止这个用户从注册到“/主题/管理/新闻”,如果用户没有权限“管理员”。我没有使用Spring Security。我想在注册频道之前有一个拦截器。
作为一种替代方法,我想使用SimpMessagingTemplate
仅向具有权限的频道的用户发送消息。有没有办法查看哪些用户目前连接到我的stomp连接?
正是我一直在寻找。干杯。 – Frame91