クラス SessionRepositoryFilter<S extends Session>

java.lang.ObjectSE
org.springframework.session.web.http.SessionRepositoryFilter<S>
型パラメーター:
S - Session 型。
実装されたすべてのインターフェース:
jakarta.servlet.Filter

@Order(-2147483598) public class SessionRepositoryFilter<S extends Session> extends ObjectSE
Session によってサポートされるように HttpSession 実装を切り替えます。SessionRepositoryFilter は HttpServletRequest をラップし、メソッドをオーバーライドして、SessionRepository によって返される Session によってサポートされる HttpSession を取得します。SessionRepositoryFilter は、HttpSessionIdResolver(デフォルトは CookieHttpSessionIdResolver)を使用して、HttpSession と Session 抽象化の間のロジックをブリッジします。具体的には:

SessionRepositoryFilter は、HttpSession にアクセスするフィルター、またはセッションがオーバーライドされて適切に永続化されるようにレスポンスをコミットする可能性のあるフィルターの前に配置する必要があります。

導入:
1.0
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final StringSE
    「すでにフィルタリングされた」リクエスト属性のフィルター名に追加されるサフィックス。
    static final int
    デフォルトのフィルター順序。
    static final StringSE
    無効なセッション ID(セッションリポジトリによってサポートされていない)リクエスト属性名。
    static final StringSE
    セッションリポジトリリクエストの属性名。
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    新しいインスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    final void
    doFilter(jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response, jakarta.servlet.FilterChain filterChain)
    この doFilter 実装は、「すでにフィルター処理済み」のリクエスト属性を保管し、属性がすでにそこにある場合はフィルター処理せずに続行します。
    protected void
    doFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain)
    doFilter と同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。
    protected void
    doFilterNestedErrorDispatch(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain)
    通常、ERROR ディスパッチは、REQUEST ディスパッチが完了した後に発生し、フィルターチェーンが新たに開始されます。
    protected StringSE
    リクエストがすでにフィルタリングされていることを識別するリクエスト属性の名前を返します。
    void
    init(jakarta.servlet.FilterConfig config)
    void
    使用する HttpSessionIdResolver を設定します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • SESSION_REPOSITORY_ATTR

      public static final StringSE SESSION_REPOSITORY_ATTR
      セッションリポジトリリクエストの属性名。
    • INVALID_SESSION_ID_ATTR

      public static final StringSE INVALID_SESSION_ID_ATTR
      無効なセッション ID(セッションリポジトリによってサポートされていない)リクエスト属性名。
    • DEFAULT_ORDER

      public static final int DEFAULT_ORDER
      デフォルトのフィルター順序。
      関連事項:
    • ALREADY_FILTERED_SUFFIX

      public static final StringSE ALREADY_FILTERED_SUFFIX
      「すでにフィルタリングされた」リクエスト属性のフィルター名に追加されるサフィックス。
      関連事項:
  • コンストラクターの詳細

    • SessionRepositoryFilter

      public SessionRepositoryFilter(SessionRepository<S> sessionRepository)
      新しいインスタンスを作成します。
      パラメーター:
      sessionRepository - 使用する SessionRepository。null にはできません。
  • メソッドの詳細

    • setHttpSessionIdResolver

      public void setHttpSessionIdResolver(HttpSessionIdResolver httpSessionIdResolver)
      使用する HttpSessionIdResolver を設定します。デフォルトは CookieHttpSessionIdResolver です。
      パラメーター:
      httpSessionIdResolver - 使用する HttpSessionIdResolver。null にはできません。
    • doFilterInternal

      protected void doFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOExceptionSE
      doFilter と同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。

      デフォルトの ServletRequest および ServletResponse の代わりに、HttpServletRequest および HttpServletResponse 引数を提供します。

      パラメーター:
      request - リクエスト
      response - レスポンス
      filterChain - FilterChain
      例外:
      jakarta.servlet.ServletException - 非 I/O 例外が発生したときにスローされます
      IOExceptionSE - ある種の I/O 例外が発生したときにスローされます
      関連事項:
      • Filter.doFilter(jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse, jakarta.servlet.FilterChain)
    • doFilterNestedErrorDispatch

      protected void doFilterNestedErrorDispatch(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOExceptionSE
      通常、ERROR ディスパッチは、REQUEST ディスパッチが完了した後に発生し、フィルターチェーンが新たに開始されます。ただし、一部のサーバーでは、ERROR ディスパッチが REQUEST ディスパッチ内にネストされている場合があります。レスポンスで sendError を呼び出した結果。その場合、同じスレッドのチェーンフィルターにまだありますが、リクエストとレスポンスは元のラップされていないものに切り替えられています。

      サブクラスはこのメソッドを使用して、ネストされた ERROR ディスパッチをフィルタリングし、リクエストまたはレスポンスにラップを再適用できます。ThreadLocal コンテキスト(存在する場合)は、フィルターチェーン内に入れ子になっているため、まだアクティブである必要があります。

      パラメーター:
      request - リクエスト
      response - レスポンス
      filterChain - フィルターチェーン
      例外:
      jakarta.servlet.ServletException - リクエストが HTTP リクエストでない場合
      IOExceptionSE - I/O 操作例外の場合
    • doFilter

      public final void doFilter(jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOExceptionSE
      この doFilter 実装は、「すでにフィルター処理済み」のリクエスト属性を保管し、属性がすでにそこにある場合はフィルター処理せずに続行します。
      次で指定:
      インターフェース jakarta.servlet.FilterdoFilter 
      パラメーター:
      request - リクエスト
      response - レスポンス
      filterChain - フィルターチェーン
      例外:
      jakarta.servlet.ServletException - リクエストが HTTP リクエストでない場合
      IOExceptionSE - I/O 操作例外の場合
    • getAlreadyFilteredAttributeName

      protected StringSE getAlreadyFilteredAttributeName()
      リクエストがすでにフィルタリングされていることを識別するリクエスト属性の名前を返します。

      デフォルトの実装では、構成された具象フィルターインスタンスの名前を使用して、".FILTERED" を追加します。フィルターが完全に初期化されていない場合、そのクラス名にフォールバックします。

      戻り値:
      すでにフィルタリングされたリクエストを示すリクエスト属性の名前
      関連事項:
    • init

      public void init(jakarta.servlet.FilterConfig config)
      次で指定:
      インターフェース jakarta.servlet.Filterinit 
    • destroy

      public void destroy()
      次で指定:
      インターフェース jakarta.servlet.Filterdestroy