クラス TestSecurityContextHolder
java.lang.ObjectSE
org.springframework.security.test.context.TestSecurityContextHolder
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
static SecurityContext
TestSecurityContextHolder
からSecurityContext
を取得します。static void
setAuthentication
(Authentication authentication) 指定されたAuthentication
で新しいSecurityContext
を作成します。static void
setContext
(SecurityContext context)
メソッドの詳細
clearContext
public static void clearContext()getContext
TestSecurityContextHolder
からSecurityContext
を取得します。setContext
- パラメーター:
context
- 使用するSecurityContext
setAuthentication
指定されたAuthentication
を使用して新しいSecurityContext
を作成します。SecurityContext
はTestSecurityContextHolder
とSecurityContextHolder
に設定されています。- パラメーター:
authentication
- 使用するAuthentication
- 導入:
- 5.1.1