【发布时间】:2016-12-22 14:15:47
【问题描述】:
我想进行一些聊天,它已经有效,但我无法从 SecurityContextHolder 获取上下文,它始终为空。注释 @PreAuthorize 和 @Secured 也不起作用,因为 SecurityContext 为 nulable。我怎样才能得到这个上下文或主体?在普通控制器中它可以工作,但不适用于 websocket。我想添加关于用户的消息信息,也许还有其他方法?
我的配置:
@Configuration
@EnableWebSocketMessageBroker
@ComponentScan(basePackages = "com.antilamer.controller")
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/chat").withSockJS();
}
}
控制器:
@Controller
public class ChatController {
@MessageMapping("/chat")
@SendTo("/topic/message")
public OutputMessageDTO sendMessage(MessageDTO message) {
return new OutputMessageDTO(message, new Date()); //here i want use my SecurityContext
}
}
【问题讨论】:
标签: java spring spring-boot websocket spring-websocket