インターフェース SecurityContextRepository
- すべての既知の実装クラス:
DelegatingSecurityContextRepository、HttpSessionSecurityContextRepository、NullSecurityContextRepository、RequestAttributeSecurityContextRepository
public interface SecurityContextRepository
リクエスト間で
SecurityContext を永続化するために使用される戦略。SecurityContextPersistenceFilter によって使用され、現在の実行スレッドに使用する必要があるコンテキストを取得し、スレッドローカルストレージから削除されてリクエストが完了したときにコンテキストを格納します。
使用される永続化メカニズムは実装によって異なりますが、最も一般的には HttpSession がコンテキストの格納に使用されます。
メソッドのサマリー
修飾子と型メソッド説明booleancontainsContext(jakarta.servlet.http.HttpServletRequest request) リポジトリに現在のリクエストのセキュリティコンテキストが含まれているかどうかを問い合わせることができます。loadContext(HttpRequestResponseHolder requestResponseHolder) 使用すべきではありません。default DeferredSecurityContextloadDeferredContext(jakarta.servlet.http.HttpServletRequest request) アプリケーションで必要になるまで、HttpServletRequestを使用したSecurityContextのロードを延期します。voidsaveContext(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)を使用してください。