インターフェース SecurityContextRepository
- すべての既知の実装クラス:
DelegatingSecurityContextRepository
、HttpSessionSecurityContextRepository
、NullSecurityContextRepository
、RequestAttributeSecurityContextRepository
public interface SecurityContextRepository
リクエスト間で
SecurityContext
を永続化するために使用される戦略。SecurityContextPersistenceFilter
によって使用され、現在の実行スレッドに使用する必要があるコンテキストを取得し、スレッドローカルストレージから削除されてリクエストが完了したときにコンテキストを格納します。
使用される永続化メカニズムは実装によって異なりますが、最も一般的には HttpSession がコンテキストの格納に使用されます。
メソッドのサマリー
修飾子と型メソッド説明boolean
containsContext
(jakarta.servlet.http.HttpServletRequest request) リポジトリに現在のリクエストのセキュリティコンテキストが含まれているかどうかを問い合わせることができます。loadContext
(HttpRequestResponseHolder requestResponseHolder) 使用すべきではありません。default DeferredSecurityContext
loadDeferredContext
(jakarta.servlet.http.HttpServletRequest request) アプリケーションで必要になるまで、HttpServletRequest
を使用したSecurityContext
のロードを延期します。void
saveContext
(SecurityContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) リクエストの補完時にセキュリティコンテキストを格納します。
メソッドの詳細
loadContext
使用すべきではありません。代わりにloadDeferredContext(HttpServletRequest)
を使用してください。指定されたリクエストのセキュリティコンテキストを取得します。認証されていないユーザーの場合、空のコンテキスト実装を返す必要があります。このメソッドは null を返しません。HttpRequestResponseHolder パラメーターを使用すると、実装はリクエストまたはレスポンス (あるいはその両方) のラップされたバージョンを返すことができ、リクエストの実装固有の状態にアクセスできるようになります。ホルダーから取得された値は、フィルターチェーンに渡され、最後に呼び出されたときに saveContext メソッドにも渡され、SecurityContext の暗黙的な保存が可能になります。実装では、レスポンスオブジェクトとして
SaveContextOnUpdateOrErrorResponseWrapper
のサブクラスを返すことを希望する場合があります。これにより、エラーまたはリダイレクトが発生したときにコンテキストが保持されることが保証されます。実装では、明示的な保存を可能にするために、元のリクエストレスポンスを渡すことができます。- パラメーター:
requestResponseHolder
- コンテキストをロードする必要がある現在のリクエストとレスポンスのホルダー。- 戻り値:
- 現在のリクエストに使用されるセキュリティコンテキスト。null になることはありません。
loadDeferredContext
default DeferredSecurityContext loadDeferredContext(jakarta.servlet.http.HttpServletRequest request) アプリケーションで必要になるまで、HttpServletRequest
を使用したSecurityContext
のロードを延期します。- パラメーター:
request
-SecurityContext
をロードするHttpServletRequest
- 戻り値:
- null にできない
SecurityContext
を返すDeferredSecurityContext
- 導入:
- 5.8
saveContext
void saveContext(SecurityContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) リクエストの補完時にセキュリティコンテキストを格納します。- パラメーター:
context
- ホルダーから取得された null 以外のコンテキスト。request
-response
-
containsContext
boolean containsContext(jakarta.servlet.http.HttpServletRequest request) リポジトリに現在のリクエストのセキュリティコンテキストが含まれているかどうかを問い合わせることができます。- パラメーター:
request
- 現在のリクエスト- 戻り値:
- リクエストのコンテキストが見つかった場合は true、そうでない場合は false
loadDeferredContext(HttpServletRequest)
を使用してください。