クラス RequestAttributeSecurityContextRepository
java.lang.ObjectSE
org.springframework.security.web.context.RequestAttributeSecurityContextRepository
- 実装されているすべてのインターフェース:
SecurityContextRepository
public final class RequestAttributeSecurityContextRepository
extends ObjectSE
implements SecurityContextRepository
SecurityContext を ServletRequest.setAttribute(String, Object) に格納して、さまざまなディスパッチ型が発生したときに復元できるようにします。以降のリクエストではご利用いただけません。HttpSessionSecurityContextRepository とは異なり、SecurityContext は RequestAttributeSecurityContextRepository の後続のリクエストに使用できないため、このフィルターはコミットされているレスポンスで SecurityContext を永続化する必要はありません。- 導入:
- 5.7
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターコンストラクター説明DEFAULT_REQUEST_ATTR_NAMEを使用して新しいインスタンスを作成します。RequestAttributeSecurityContextRepository(StringSE requestAttributeName) 指定されたリクエスト属性名で新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明booleancontainsContext(jakarta.servlet.http.HttpServletRequest request) リポジトリに現在のリクエストのセキュリティコンテキストが含まれているかどうかを問い合わせることができます。loadContext(HttpRequestResponseHolder requestResponseHolder) 指定されたリクエストのセキュリティコンテキストを取得します。loadDeferredContext(jakarta.servlet.http.HttpServletRequest request) アプリケーションで必要になるまで、HttpServletRequestを使用したSecurityContextのロードを延期します。voidsaveContext(SecurityContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) リクエストの完了時にセキュリティコンテキストを格納します。voidsetSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategyを設定します。
フィールドの詳細
DEFAULT_REQUEST_ATTR_NAME
使用するデフォルトのリクエスト属性名。
コンストラクターの詳細
RequestAttributeSecurityContextRepository
public RequestAttributeSecurityContextRepository()DEFAULT_REQUEST_ATTR_NAMEを使用して新しいインスタンスを作成します。RequestAttributeSecurityContextRepository
指定されたリクエスト属性名で新しいインスタンスを作成します。- パラメーター:
requestAttributeName-SecurityContextに設定するリクエスト属性名。
メソッドの詳細
containsContext
public boolean containsContext(jakarta.servlet.http.HttpServletRequest request) インターフェースからコピーされた説明:SecurityContextRepositoryリポジトリに現在のリクエストのセキュリティコンテキストが含まれているかどうかを問い合わせることができます。- 次で指定:
- インターフェース
SecurityContextRepositoryのcontainsContext - パラメーター:
request- 現在のリクエスト- 戻り値:
- リクエストのコンテキストが見つかった場合は true、そうでない場合は false
loadContext
インターフェースからコピーされた説明:SecurityContextRepository指定されたリクエストのセキュリティコンテキストを取得します。認証されていないユーザーの場合、空のコンテキスト実装を返す必要があります。このメソッドは null を返しません。HttpRequestResponseHolder パラメーターを使用すると、実装はリクエストまたはレスポンス (あるいはその両方) のラップされたバージョンを返すことができ、リクエストの実装固有の状態にアクセスできるようになります。ホルダーから取得された値は、フィルターチェーンに渡され、最後に呼び出されたときに saveContext メソッドにも渡され、SecurityContext の暗黙的な保存が可能になります。実装では、レスポンスオブジェクトとして
SaveContextOnUpdateOrErrorResponseWrapperのサブクラスを返すことを希望する場合があります。これにより、エラーまたはリダイレクトが発生したときにコンテキストが保持されることが保証されます。実装では、明示的な保存を可能にするために、元のリクエストレスポンスを渡すことができます。- 次で指定:
- インターフェース
SecurityContextRepositoryのloadContext - パラメーター:
requestResponseHolder- コンテキストをロードする必要がある現在のリクエストとレスポンスのホルダー。- 戻り値:
- 現在のリクエストに使用されるセキュリティコンテキスト。null になることはありません。
loadDeferredContext
インターフェースからコピーされた説明:SecurityContextRepositoryアプリケーションで必要になるまで、HttpServletRequestを使用したSecurityContextのロードを延期します。- 次で指定:
- インターフェース
SecurityContextRepositoryのloadDeferredContext - パラメーター:
request-SecurityContextをロードするHttpServletRequest- 戻り値:
- null にできない
SecurityContextを返すDeferredSecurityContext
saveContext
public void saveContext(SecurityContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) インターフェースからコピーされた説明:SecurityContextRepositoryリクエストの完了時にセキュリティコンテキストを格納します。- 次で指定:
- インターフェース
SecurityContextRepositoryのsaveContext - パラメーター:
context- ホルダーから取得された null 以外のコンテキスト。
setSecurityContextHolderStrategy
public void setSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategyを設定します。デフォルトのアクションは、SecurityContextHolderに格納されているSecurityContextHolderStrategyを使用することです。- 導入:
- 5.8