クラス 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
を設定する新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明void
afterMessageHandled
(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) void
setAnonymousAuthentication
(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