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