クラス SecurityContextPropagationChannelInterceptor
java.lang.ObjectSE
org.springframework.security.messaging.context.SecurityContextPropagationChannelInterceptor
- 実装されているすべてのインターフェース:
org.springframework.messaging.support.ChannelInterceptor,org.springframework.messaging.support.ExecutorChannelInterceptor
public final class SecurityContextPropagationChannelInterceptor
extends ObjectSE
implements org.springframework.messaging.support.ExecutorChannelInterceptor
preSend(Message, MessageChannel) コールバック内の現在の SecurityContext (存在する場合) から Authentication を取得し、それを authenticationHeaderName メッセージヘッダーに格納する ExecutorChannelInterceptor。次に、このヘッダーからのコンテキストを beforeHandle(Message, MessageChannel, MessageHandler) および postReceive(Message, MessageChannel) に設定します。これらは通常、両方とも別のスレッドで発生します。 メモ: これらのインターセプターは両方とも処理操作と受信操作のセキュリティコンテキストを変更するため、同じチャネル上で SecurityContextChannelInterceptor と組み合わせて使用することはできません。
- 導入:
- 6.2
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明SimpMessageHeaderAccessor.USER_HEADERという名前のヘッダーを使用して新しいインスタンスを作成します。SecurityContextPropagationChannelInterceptor(StringSE authenticationHeaderName) 指定されたヘッダーを使用してAuthenticationを設定する新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明voidafterMessageHandled(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, org.springframework.messaging.MessageHandler handler, ExceptionSE ex) org.springframework.messaging.Message<?>beforeHandle(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, org.springframework.messaging.MessageHandler handler) org.springframework.messaging.Message<?>postReceive(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel) org.springframework.messaging.Message<?>preSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel) voidsetAnonymousAuthentication(Authentication authentication) 匿名認証に使用する認証を設定します。voidクラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.messaging.support.ChannelInterceptor から継承されたメソッド
afterReceiveCompletion, afterSendCompletion, postSend, preReceive
コンストラクターの詳細
SecurityContextPropagationChannelInterceptor
public SecurityContextPropagationChannelInterceptor()SimpMessageHeaderAccessor.USER_HEADERという名前のヘッダーを使用して新しいインスタンスを作成します。SecurityContextPropagationChannelInterceptor
指定されたヘッダーを使用してAuthenticationを設定する新しいインスタンスを作成します。- パラメーター:
authenticationHeaderName-Authenticationに設定するヘッダー名。null にすることはできません。
メソッドの詳細
setSecurityContextHolderStrategy
setAnonymousAuthentication
匿名認証に使用する認証を設定します。デフォルトは次のとおりです。new AnonymousAuthenticationToken("key", "anonymous", AuthorityUtils.createAuthorityList("ROLE_ANONYMOUS"));- パラメーター:
authentication- 匿名認証に使用される認証。null にすることはできません。
preSend
public org.springframework.messaging.Message<?> preSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel) - 次で指定:
- インターフェース
org.springframework.messaging.support.ChannelInterceptorのpreSend
beforeHandle
public org.springframework.messaging.Message<?> beforeHandle(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, org.springframework.messaging.MessageHandler handler) - 次で指定:
- インターフェース
org.springframework.messaging.support.ExecutorChannelInterceptorのbeforeHandle
postReceive
public org.springframework.messaging.Message<?> postReceive(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel) - 次で指定:
- インターフェース
org.springframework.messaging.support.ChannelInterceptorのpostReceive
afterMessageHandled
public void afterMessageHandled(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, org.springframework.messaging.MessageHandler handler, ExceptionSE ex) - 次で指定:
- インターフェース
org.springframework.messaging.support.ExecutorChannelInterceptorのafterMessageHandled