クラス ListeningSecurityContextHolderStrategy
- java.lang.Object
-
- org.springframework.security.core.context.ListeningSecurityContextHolderStrategy
- 実装されたすべてのインターフェース:
SecurityContextHolderStrategy
public final class ListeningSecurityContextHolderStrategy extends java.lang.Object implements SecurityContextHolderStrategy
SecurityContext
が変更されたときに通知するための API。これは、基礎となる認証が変更されたときに通知されないことに注意してください。認証の変更に関する通知を受け取るには、次のように認証を変更するときにsetContext(org.springframework.security.core.context.SecurityContext)
を使用していることを確認してください。SecurityContext context = SecurityContextHolder.createEmptyContext(); context.setAuthentication(authentication); SecurityContextHolder.setContext(context);
既存のSecurityContextHolder
にリスナーを追加するには、次のようにします。SecurityContextHolderStrategy original = SecurityContextHolder.getContextHolderStrategy(); SecurityContextChangedListener listener = new YourListener(); SecurityContextHolderStrategy strategy = new ListeningSecurityContextHolderStrategy(original, listener); SecurityContextHolder.setContextHolderStrategy(strategy);
NOTE:SecurityContextHolder
に提供するオブジェクトはすべて静的コンテキストの一部になり、ガベージコレクションは行われません。参照を削除するには、reset the strategy
は次のようになります。SecurityContextHolder.setContextHolderStrategy(original);
これにより、YourListener
とそのメンバーをガベージコレクションできるようになります。- 導入:
- 5.6
コンストラクターのサマリー
コンストラクター コンストラクター 説明 ListeningSecurityContextHolderStrategy(java.util.Collection<SecurityContextChangedListener> listeners)
ThreadLocalSecurityContextHolderStrategy
に基づいてListeningSecurityContextHolderStrategy
を構築しますListeningSecurityContextHolderStrategy(SecurityContextChangedListener... listeners)
ThreadLocalSecurityContextHolderStrategy
に基づいてListeningSecurityContextHolderStrategy
を構築しますListeningSecurityContextHolderStrategy(SecurityContextHolderStrategy delegate, java.util.Collection<SecurityContextChangedListener> listeners)
ListeningSecurityContextHolderStrategy(SecurityContextHolderStrategy delegate, SecurityContextChangedListener... listeners)
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 void
clearContext()
現在のコンテキストをクリアします。SecurityContext
createEmptyContext()
初めて新しいコンテキストを作成するときに、 SecurityContextRepository 実装で使用するために、新しい空のコンテキスト実装を作成します。SecurityContext
getContext()
現在のコンテキストを取得します。void
setContext(SecurityContext context)
現在のコンテキストを設定します。
コンストラクターの詳細
ListeningSecurityContextHolderStrategy
public ListeningSecurityContextHolderStrategy(java.util.Collection<SecurityContextChangedListener> listeners)
ThreadLocalSecurityContextHolderStrategy
に基づいてListeningSecurityContextHolderStrategy
を構築します- パラメーター:
listeners
-SecurityContext
がset
またはcleared
のときに通知する必要があるリスナー- 導入:
- 5.7
ListeningSecurityContextHolderStrategy
public ListeningSecurityContextHolderStrategy(SecurityContextChangedListener... listeners)
ThreadLocalSecurityContextHolderStrategy
に基づいてListeningSecurityContextHolderStrategy
を構築します- パラメーター:
listeners
-SecurityContext
がset
またはcleared
のときに通知する必要があるリスナー- 導入:
- 5.7
ListeningSecurityContextHolderStrategy
public ListeningSecurityContextHolderStrategy(SecurityContextHolderStrategy delegate, java.util.Collection<SecurityContextChangedListener> listeners)
- パラメーター:
listeners
-SecurityContext
がset
またはcleared
のときに通知する必要があるリスナーdelegate
- 基礎となるSecurityContextHolderStrategy
ListeningSecurityContextHolderStrategy
public ListeningSecurityContextHolderStrategy(SecurityContextHolderStrategy delegate, SecurityContextChangedListener... listeners)
- パラメーター:
listeners
-SecurityContext
がset
またはcleared
のときに通知する必要があるリスナーdelegate
- 基礎となるSecurityContextHolderStrategy
メソッドの詳細
clearContext
public void clearContext()
現在のコンテキストをクリアします。- 次で指定:
- インターフェース
SecurityContextHolderStrategy
のclearContext
getContext
public SecurityContext getContext()
現在のコンテキストを取得します。- 次で指定:
- インターフェース
SecurityContextHolderStrategy
のgetContext
- 戻り値:
- コンテキスト (
null
になることはありません - 必要に応じてデフォルトの実装を作成します)
setContext
public void setContext(SecurityContext context)
現在のコンテキストを設定します。- 次で指定:
- インターフェース
SecurityContextHolderStrategy
のsetContext
- パラメーター:
context
- 新しい引数に (null
にしないでください。実装では、null
が渡されたかどうかを確認し、そのような場合はIllegalArgumentException
をスローする必要があります。)
createEmptyContext
public SecurityContext createEmptyContext()
初めて新しいコンテキストを作成するときに、 SecurityContextRepository 実装で使用するために、新しい空のコンテキスト実装を作成します。- 次で指定:
- インターフェース
SecurityContextHolderStrategy
のcreateEmptyContext
- 戻り値:
- 空のコンテキスト。