インターフェース SecurityContextRepository

すべての既知の実装クラス:
DelegatingSecurityContextRepositoryHttpSessionSecurityContextRepositoryNullSecurityContextRepositoryRequestAttributeSecurityContextRepository

public interface SecurityContextRepository
リクエスト間で SecurityContext を永続化するために使用される戦略。

SecurityContextPersistenceFilter によって使用され、現在の実行スレッドに使用する必要があるコンテキストを取得し、スレッドローカルストレージから削除されてリクエストが完了したときにコンテキストを格納します。

使用される永続化メカニズムは実装によって異なりますが、最も一般的には HttpSession がコンテキストの格納に使用されます。

導入:
3.0
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    containsContext(jakarta.servlet.http.HttpServletRequest request)
    リポジトリに現在のリクエストのセキュリティコンテキストが含まれているかどうかを問い合わせることができます。
    loadContext(HttpRequestResponseHolder requestResponseHolder)
    使用すべきではありません。
    代わりに loadDeferredContext(HttpServletRequest) を使用してください。
    loadDeferredContext(jakarta.servlet.http.HttpServletRequest request)
    アプリケーションで必要になるまで、HttpServletRequest を使用した SecurityContext のロードを延期します。
    void
    saveContext(SecurityContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
    リクエストの補完時にセキュリティコンテキストを格納します。
  • メソッドの詳細

    • loadContext

      @DeprecatedSE SecurityContext loadContext(HttpRequestResponseHolder requestResponseHolder)
      使用すべきではありません。
      代わりに loadDeferredContext(HttpServletRequest) を使用してください。
      指定されたリクエストのセキュリティコンテキストを取得します。認証されていないユーザーの場合、空のコンテキスト実装を返す必要があります。このメソッドは null を返しません。

      HttpRequestResponseHolder パラメーターを使用すると、実装はラップされたバージョンのリクエストまたはレスポンス(あるいはその両方)を返すことができ、リクエストの実装固有の状態にアクセスできます。ホルダーから取得した値は、フィルターチェーンに渡されます。また、 SecurityContext の暗黙的な保存を許可するために最終的に呼び出されると、 saveContext メソッドにも渡されます。実装では、レスポンスオブジェクトとして 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