クラス SecurityContextPropagationChannelInterceptor

java.lang.ObjectSE
org.springframework.security.messaging.context.SecurityContextPropagationChannelInterceptor
実装されたすべてのインターフェース:
org.springframework.messaging.support.ChannelInterceptororg.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 という名前のヘッダーを使用して新しいインスタンスを作成します。
    指定されたヘッダーを使用して 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
    匿名認証に使用する認証を設定します。
    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

      public SecurityContextPropagationChannelInterceptor(StringSE authenticationHeaderName)
      指定されたヘッダーを使用して Authentication を設定する新しいインスタンスを作成します。
      パラメーター:
      authenticationHeaderName - Authentication に設定するヘッダー名。null にすることはできません。
  • メソッドの詳細

    • setSecurityContextHolderStrategy

      public void setSecurityContextHolderStrategy(SecurityContextHolderStrategy strategy)
    • setAnonymousAuthentication

      public void setAnonymousAuthentication(Authentication authentication)
      匿名認証に使用する認証を設定します。デフォルトは次のとおりです。
       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.ChannelInterceptorpreSend 
    • 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.ExecutorChannelInterceptorbeforeHandle 
    • postReceive

      public org.springframework.messaging.Message<?> postReceive(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel)
      次で指定:
      インターフェース org.springframework.messaging.support.ChannelInterceptorpostReceive 
    • 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.ExecutorChannelInterceptorafterMessageHandled