Webソケット接続用にトークンベースの認証を実装したいと思います。スプリングSTOMPトークンベースのセキュリティ
私のバックエンドシステムは、サーバーとマシンがマシンとサーバ間のメッセージの送受信時に認証を実装する方法クライアント、ここにはユーザ認証です。
@Configuration
@EnableWebSocketMessageBroker
public class MyConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureClientInboundChannel(ChannelRegistration registration) {
registration.setInterceptors(new ChannelInterceptorAdapter() {
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
StompHeaderAccessor accessor =
MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);
if (StompCommand.CONNECT.equals(accessor.getCommand())) {
String authToken = accessor.getFirstNativeHeader("X-Auth-Token");
log.debug("webSocket token is {}", authToken);
Principal user = ... ; // access authentication header(s)
accessor.setUser(user);
}
return message;
}
});
}
}
しかし、私は "Principal user = ...;"でどのように行うのかは全く分かりません。トークンを使ってどのようにPrincipleを得ることができますか?ここではユーザーが存在しない、あなたは次のようになり、何かに似たソリューションが必要な場合がありますように、
あなたがユーザーとの対話なしでサーバーを使用してクライアントを認証し、にトークンを作成する方法を求めていますクライアントで使用しますか?または、すでにトークンを持っていて、トークンからプリンシパルを取得する方法を尋ねていますか? – CamW
ユーザーインタラクションのないサーバーでクライアントを認証し、クライアントで使用するトークンを作成する方法 – Amit
アプリケーションはどのようにクライアントデバイスに接続されますか?ユーザーがダウンロードしてインストールしますか?あなたはクライアントアプリケーションの性質についてより多くの情報を提供できますか? – CamW