クラス TestSecurityContextHolder
- java.lang.Object
-
- org.springframework.security.test.context.TestSecurityContextHolder
public final class TestSecurityContextHolder extends java.lang.Object
TestSecurityContextHolder
は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 void
clearContext()
static SecurityContext
getContext()
TestSecurityContextHolder
からSecurityContext
を取得します。static void
setAuthentication(Authentication authentication)
指定されたAuthentication
で新しいSecurityContext
を作成します。static void
setContext(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