クラス InMemoryWebSessionStore

java.lang.ObjectSE
org.springframework.web.server.session.InMemoryWebSessionStore
実装されたすべてのインターフェース:
WebSessionStore

public class InMemoryWebSessionStore extends ObjectSE implements WebSessionStore
WebSession インスタンス用のシンプルなマップベースのストレージ。
導入:
5.0
作成者:
Rossen Stoyanchev, Rob Winch
  • コンストラクターの詳細

    • InMemoryWebSessionStore

      public InMemoryWebSessionStore()
  • メソッドの詳細

    • setMaxSessions

      public void setMaxSessions(int maxSessions)
      保存できるセッションの最大数を設定します。制限に達すると、追加のセッションを保存しようとすると、IllegalStateExceptionSE が発生します。

      デフォルトでは 10000 に設定されています。

      パラメーター:
      maxSessions - セッションの最大数
      導入:
      5.0.8
    • getMaxSessions

      public int getMaxSessions()
      保存できるセッションの最大数を返します。
      導入:
      5.0.8
    • setClock

      public void setClock(ClockSE clock)
      作成されたすべてのセッションで lastAccessTime を設定し、期限切れかどうかを計算するために使用する ClockSE を構成します。

      これは、異なるタイムゾーンに合わせる場合や、テストでクロックを戻す場合に役立ちます。セッションの有効期限をシミュレートするための Clock.offset(clock, Duration.ofMinutes(-31))

      デフォルトでは、これは Clock.system(ZoneId.of("GMT")) です。

      パラメーター:
      clock - 使用する監視
    • getClock

      public ClockSE getClock()
      セッションの lastAccessTime 計算用に構成されたクロックを返します。
    • getSessions

      public MapSE<StringSE,WebSession> getSessions()
      unmodifiableSE ラッパーを使用してセッションのマップを返します。これは、管理目的、アクティブなセッションの一覧表示、期限切れのセッションの無効化などに使用できます。
      導入:
      5.0.8
    • createWebSession

      public reactor.core.publisher.Mono<WebSession> createWebSession()
      インターフェースからコピーされた説明: WebSessionStore
      新しい WebSession を作成します。

      これは、新しいインスタンスを作成する以外の何もしないことに注意してください。セッションは後で WebSession.start() を介して明示的に開始するか、属性を追加することによって暗黙的に開始でき、その後 WebSession.save() を介して永続化できます。

      次で指定:
      インターフェース WebSessionStorecreateWebSession 
      戻り値:
      作成されたセッションインスタンス
    • retrieveSession

      public reactor.core.publisher.Mono<WebSession> retrieveSession(StringSE id)
      インターフェースからコピーされた説明: WebSessionStore
      指定された ID の WebSession を返します。

      注意 : このメソッドは有効期限チェックを実行し、有効期限が切れている場合はセッションを削除して空を返します。このメソッドは、取得したセッションの lastAccessTime も更新する必要があります。

      次で指定:
      インターフェース WebSessionStoreretrieveSession 
      パラメーター:
      id - ロードするセッション
      戻り値:
      セッション、または空の Mono
    • removeSession

      public reactor.core.publisher.Mono<VoidSE> removeSession(StringSE id)
      インターフェースからコピーされた説明: WebSessionStore
      指定された ID の WebSession を削除します。
      次で指定:
      インターフェース WebSessionStoreremoveSession 
      パラメーター:
      id - 削除するセッションの ID
      戻り値:
      完了通知 (成功またはエラー)
    • updateLastAccessTime

      public reactor.core.publisher.Mono<WebSession> updateLastAccessTime(WebSession session)
      インターフェースからコピーされた説明: WebSessionStore
      最後にアクセスしたタイムスタンプを「今」に更新します。
      次で指定:
      インターフェース WebSessionStoreupdateLastAccessTime 
      パラメーター:
      session - 更新するセッション
      戻り値:
      最終アクセス時刻が更新されたセッション
    • removeExpiredSessions

      public void removeExpiredSessions()
      期限切れのセッションを確認して削除します。通常、このようなチェックは、create または retrieve への呼び出し中に 60 秒以上間隔を空けて開始されます。このメソッドを呼び出して、特定の時間にチェックを強制することができます。
      導入:
      5.0.8