クラス ReactiveLifecycleAwareSessionManager
java.lang.ObjectSE
org.springframework.vault.authentication.AuthenticationEventPublisher
org.springframework.vault.authentication.LifecycleAwareSessionManagerSupport
org.springframework.vault.authentication.ReactiveLifecycleAwareSessionManager
- 実装されているすべてのインターフェース:
DisposableBean
、AuthenticationEventMulticaster
、ReactiveSessionManager
、VaultTokenSupplier
public class ReactiveLifecycleAwareSessionManager
extends LifecycleAwareSessionManagerSupport
implements ReactiveSessionManager, DisposableBean
ライフサイクルを意識した
session manager
のリアクティブ実装。この ReactiveSessionManager
は、request
で authentication method
からトークンを取得し、複数のスレッドが同時にトークンを取得しようとした場合にトークンが 1 回だけ取得されることを保証します。 トークンにリース期間がある場合、トークンは非同期的に更新されます。これは、トークンの有効期限が切れる 5 秒前に発生します。LifecycleAwareSessionManagerSupport.REFRESH_PERIOD_BEFORE_EXPIRY
を参照してください。
この ReactiveSessionManager
は、LoginToken
が不要になったときにそれを取り消すための DisposableBean
も実装します。トークンが失効すると、定期的なトークンのリフレッシュが停止されます。トークンは、関連付けられた VaultTokenSupplier
が service token
を返した場合にのみ取り消されます。
トークンの更新でクライアント側のエラーが発生した場合、トークンが取り消されたか期限切れになったと見なされます。トークンの状態を破棄するため、次の試行で別のログイン試行が行われます。
デフォルトでは、VaultToken
は Vault で検索され、更新可能性、残りの TTL、アクセサー、型が決定されます。LifecycleAwareSessionManagerSupport.setTokenSelfLookupEnabled(boolean)
を参照してください。
セッションマネージャーは、認証イベントを AuthenticationListener
および AuthenticationErrorListener
にディスパッチします。
このクラスはスレッドセーフであり、ロックのない同期を使用します。
- 導入:
- 2.0
- 作成者:
- Mark Paluch
- 関連事項:
ネストされたクラスのサマリー
ネストされたクラスクラス org.springframework.vault.authentication.LifecycleAwareSessionManagerSupport から継承されたネストクラス / インターフェース
LifecycleAwareSessionManagerSupport.FixedTimeoutRefreshTrigger, LifecycleAwareSessionManagerSupport.OneShotTrigger, LifecycleAwareSessionManagerSupport.RefreshTrigger
フィールドのサマリー
クラス org.springframework.vault.authentication.LifecycleAwareSessionManagerSupport から継承されたフィールド
logger, REFRESH_PERIOD_BEFORE_EXPIRY
コンストラクターの概要
コンストラクターコンストラクター説明ReactiveLifecycleAwareSessionManager
(VaultTokenSupplier clientAuthentication, TaskScheduler taskScheduler, WebClient webClient) ReactiveLifecycleAwareSessionManager
(VaultTokenSupplier clientAuthentication, TaskScheduler taskScheduler, WebClient webClient, LifecycleAwareSessionManagerSupport.RefreshTrigger refreshTrigger) メソッドのサマリー
修飾子と型メソッド説明void
destroy()
VaultToken
を返します。protected boolean
isTokenRenewable
(VaultToken token) トークンのリフレッシュを実行します。revoke()
現在のVaultToken
を取り消して削除します。revoke
(VaultToken token) VaultToken
を取り消します。void
現在のVaultToken
を今すぐ取り消して削除してください。protected void
今すぐVaultToken
を取り消し、取り消しが完了するまで実行をブロックします。クラス org.springframework.vault.authentication.LifecycleAwareSessionManagerSupport から継承されたメソッド
getRefreshTrigger, getTaskScheduler, isExpired, isTokenSelfLookupEnabled, setLeaseStrategy, setTokenSelfLookupEnabled
クラス org.springframework.vault.authentication.AuthenticationEventPublisher から継承されたメソッド
addAuthenticationListener, addErrorListener, multicastEvent, multicastEvent, removeAuthenticationListener, removeErrorListener
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.vault.authentication.ReactiveSessionManager から継承されたメソッド
getSessionToken
コンストラクターの詳細
ReactiveLifecycleAwareSessionManager
public ReactiveLifecycleAwareSessionManager(VaultTokenSupplier clientAuthentication, TaskScheduler taskScheduler, WebClient webClient) - パラメーター:
clientAuthentication
- null であってはなりません。taskScheduler
- null であってはなりません。webClient
- null であってはなりません。
ReactiveLifecycleAwareSessionManager
public ReactiveLifecycleAwareSessionManager(VaultTokenSupplier clientAuthentication, TaskScheduler taskScheduler, WebClient webClient, LifecycleAwareSessionManagerSupport.RefreshTrigger refreshTrigger) - パラメーター:
clientAuthentication
- null であってはなりません。taskScheduler
- null であってはなりません。webClient
- null であってはなりません。refreshTrigger
- null であってはなりません。
メソッドの詳細
destroy
public void destroy()- 次で指定:
- インターフェース
DisposableBean
のdestroy
revoke
現在のVaultToken
を取り消して削除します。- 戻り値:
- 取り消しが成功すると、mono が完了を出力します。
- 導入:
- 3.0.2
revokeNow
public void revokeNow()現在のVaultToken
を今すぐ取り消して削除してください。- 導入:
- 3.0.2
revokeNow
今すぐVaultToken
を取り消し、取り消しが完了するまで実行をブロックします。- パラメーター:
tokenMono
-
doRevoke
revoke
VaultToken
を取り消します。- パラメーター:
token
- 取り消すトークン。null であってはなりません。
renewToken
トークンのリフレッシュを実行します。以前にトークンを取得していない場合は、新しいトークンを作成します。トークンが以前に取得された場合、自己リフレッシュを使用して現在のトークンをリフレッシュします。クライアント側のエラー (許可が拒否されたなど) は、トークンが期限切れであるか単に見つからないためにリフレッシュできないことを示します。- 戻り値:
- リフレッシュが成功した場合、または新しいトークンが取得された場合は
VaultToken
。新しいトークンの有効期限が切れた場合はMono.empty()
、リフレッシュに失敗した場合はMono.error(Throwable)
。
getVaultToken
インターフェースからコピーされた説明:VaultTokenSupplier
VaultToken
を返します。これにより、token
を取得するための Vault ログインフローを宣言できます。- 次で指定:
- インターフェース
VaultTokenSupplier
のgetVaultToken
- 戻り値:
VaultToken
を使用したMono
。- 例外:
VaultException
isTokenRenewable
- 戻り値:
- トークンが更新可能な場合は true。