クラス ReactiveLifecycleAwareSessionManager

実装されているすべてのインターフェース:
DisposableBeanAuthenticationEventMulticasterReactiveSessionManagerVaultTokenSupplier

public class ReactiveLifecycleAwareSessionManager extends LifecycleAwareSessionManagerSupport implements ReactiveSessionManager, DisposableBean
ライフサイクルを意識した session manager のリアクティブ実装。この ReactiveSessionManager は、requestauthentication method からトークンを取得し、複数のスレッドが同時にトークンを取得しようとした場合にトークンが 1 回だけ取得されることを保証します。

トークンにリース期間がある場合、トークンは非同期的に更新されます。これは、トークンの有効期限が切れる 5 秒前に発生します。LifecycleAwareSessionManagerSupport.REFRESH_PERIOD_BEFORE_EXPIRY を参照してください。

この ReactiveSessionManager は、LoginToken が不要になったときにそれを取り消すための DisposableBean も実装します。トークンが失効すると、定期的なトークンのリフレッシュが停止されます。トークンは、関連付けられた VaultTokenSupplierservice token を返した場合にのみ取り消されます。

トークンの更新でクライアント側のエラーが発生した場合、トークンが取り消されたか期限切れになったと見なされます。トークンの状態を破棄するため、次の試行で別のログイン試行が行われます。

デフォルトでは、VaultToken は Vault で検索され、更新可能性、残りの TTL、アクセサー、型が決定されます。LifecycleAwareSessionManagerSupport.setTokenSelfLookupEnabled(boolean) を参照してください。

セッションマネージャーは、認証イベントを AuthenticationListener および AuthenticationErrorListener にディスパッチします。

このクラスはスレッドセーフであり、ロックのない同期を使用します。

導入:
2.0
作成者:
Mark Paluch
関連事項:
  • コンストラクターの詳細

  • メソッドの詳細

    • destroy

      public void destroy()
      次で指定:
      インターフェース DisposableBeandestroy 
    • revoke

      public Mono<VoidSE> revoke()
      現在の VaultToken を取り消して削除します。
      戻り値:
      取り消しが成功すると、mono が完了を出力します。
      導入:
      3.0.2
    • revokeNow

      public void revokeNow()
      現在の VaultToken を今すぐ取り消して削除してください。
      導入:
      3.0.2
    • revokeNow

      protected void revokeNow(Mono<ReactiveLifecycleAwareSessionManager.TokenWrapper> tokenMono)
      今すぐ VaultToken を取り消し、取り消しが完了するまで実行をブロックします。
      パラメーター:
      tokenMono -
    • doRevoke

    • revoke

      protected Mono<VoidSE> revoke(VaultToken token)
      VaultToken を取り消します。
      パラメーター:
      token - 取り消すトークン。null であってはなりません。
    • renewToken

      public Mono<VaultToken> renewToken()
      トークンのリフレッシュを実行します。以前にトークンを取得していない場合は、新しいトークンを作成します。トークンが以前に取得された場合、自己リフレッシュを使用して現在のトークンをリフレッシュします。クライアント側のエラー (許可が拒否されたなど) は、トークンが期限切れであるか単に見つからないためにリフレッシュできないことを示します。
      戻り値:
      リフレッシュが成功した場合、または新しいトークンが取得された場合は VaultToken。新しいトークンの有効期限が切れた場合は Mono.empty()、リフレッシュに失敗した場合は Mono.error(Throwable)
    • getVaultToken

      public Mono<VaultToken> getVaultToken() throws VaultException
      インターフェースからコピーされた説明: VaultTokenSupplier
      VaultToken を返します。これにより、token を取得するための Vault ログインフローを宣言できます。
      次で指定:
      インターフェース VaultTokenSuppliergetVaultToken 
      戻り値:
      VaultToken を使用した Mono
      例外:
      VaultException
    • isTokenRenewable

      protected boolean isTokenRenewable(VaultToken token)
      戻り値:
      トークンが更新可能な場合は true。