クラス TestSecurityContextHolder
- java.lang.Object
-
- org.springframework.security.test.context.TestSecurityContextHolder
public final class TestSecurityContextHolder extends java.lang.ObjectTestSecurityContextHolderはSecurityContextHolderと非常に似ていますが、テストに必要です。例: Web ベースのテスト用にSecurityContextHolderに目的のSecurityContextを設定することはできません。Web リクエストでは、SecurityContextPersistenceFilterはSecurityContextHolderをSecurityContextRepositoryによって返される値でオーバーライドします。FilterChainの終了時に、SecurityContextPersistenceFilterはSecurityContextHolderをクリアします。つまり、複数の Web リクエストを行うと、後続のリクエストでどのSecurityContextを使用するかがわかりません。一般的な使用箇所は次のとおりです。- テストが実行される前に、
TestSecurityContextHolderにデータが入力されます。通常、これはWithSecurityContextTestExecutionListenerを使用して行われます - テストが実行されます。
MockMvcで使用する場合、通常はSecurityMockMvcRequestPostProcessors.testSecurityContext()で使用します。これにより、TestSecurityContextHolderからのSecurityContextが適切に設定されます。 - テストが実行された後、
TestSecurityContextHolderとSecurityContextHolderはクリアされます
- 導入:
- 4.0
- テストが実行される前に、
方法の概要
すべてのメソッド 静的メソッド 具象メソッド 修飾子と型 メソッド 説明 static voidclearContext()static SecurityContextgetContext()TestSecurityContextHolderからSecurityContextを取得します。static voidsetAuthentication(Authentication authentication)指定されたAuthenticationで新しいSecurityContextを作成します。static voidsetContext(SecurityContext context)
メソッドの詳細
clearContext
public static void clearContext()
getContext
public static SecurityContext getContext()
TestSecurityContextHolderからSecurityContextを取得します。
setContext
public static void setContext(SecurityContext context)
- パラメーター:
context- 使用するSecurityContext
setAuthentication
public static void setAuthentication(Authentication authentication)
指定されたAuthenticationを使用して新しいSecurityContextを作成します。SecurityContextはTestSecurityContextHolderとSecurityContextHolderに設定されています。- パラメーター:
authentication- 使用するAuthentication- 導入:
- 5.1.1