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