クラス 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) 指定されたリクエスト属性名で新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明boolean
containsContext
(jakarta.servlet.http.HttpServletRequest request) リポジトリに現在のリクエストのセキュリティコンテキストが含まれているかどうかを問い合わせることができます。loadContext
(HttpRequestResponseHolder requestResponseHolder) 指定されたリクエストのセキュリティコンテキストを取得します。loadDeferredContext
(jakarta.servlet.http.HttpServletRequest request) アプリケーションで必要になるまで、HttpServletRequest
を使用したSecurityContext
のロードを延期します。void
saveContext
(SecurityContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) リクエストの補完時にセキュリティコンテキストを格納します。void
setSecurityContextHolderStrategy
(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