0
私はチャットをしたい、それはすでに動作しますが、SecurityContextHolderからコンテキストを取得できません。常にnullです。注釈@PreAuthorizeと@Securedは、Nulable SecurityContextのためにも機能しません。この文脈やプリンシパルをどうやって得ることができますか?通常のコントローラでは動作しますが、websocketでは動作しません。私はユーザーに関するメッセージ情報に追加したい、別の方法があるかもしれない?WebSocket、Spring Bootの認証
マイ設定:
@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
}
}