public interface WebSession
WebSession
インスタンスを作成してもセッションは自動的に開始されないため、セッション ID がクライアントに送信されます(通常は Cookie を介して)。セッション属性が追加されると、セッションは暗黙的に開始されます。セッションは start()
を介して明示的に作成することもできます。
修飾子と型 | メソッドと説明 |
---|---|
reactor.core.publisher.Mono<java.lang.Void> | changeSessionId() セッションの新しい ID を生成し、基になるセッションストレージを更新して新しい ID を反映させます。 |
default <T> T | getAttribute(java.lang.String name) 存在する場合、セッション属性値を返します。 |
default <T> T | getAttributeOrDefault(java.lang.String name, T defaultValue) セッション属性値、またはデフォルトのフォールバック値を返します。 |
java.util.Map<java.lang.String,java.lang.Object> | getAttributes() セッション属性を保持するマップを返します。 |
java.time.Instant | getCreationTime() セッションが作成された時刻を返します。 |
java.lang.String | getId() 一意のセッション識別子を返します。 |
java.time.Instant | getLastAccessTime() HTTP リクエストなどのユーザーアクティビティの結果として、セッションアクセスの最後の時間を返します。 |
java.time.Duration | getMaxIdleTime() lastAccessTime の後、セッションが期限切れになるまでの最大時間を返します。 |
default <T> T | getRequiredAttribute(java.lang.String name) セッション属性値を返すか、存在しない場合は IllegalArgumentException を発生させます。 |
reactor.core.publisher.Mono<java.lang.Void> | invalidate() 現在のセッションを無効にし、セッションストレージをクリアします。 |
boolean | isExpired() maxIdleTime の経過後にセッションが期限切れになった場合は、true を返します。 |
boolean | isStarted() クライアントとのセッションが start() を介して明示的に開始されたか、セッション属性を追加して暗黙的に開始されたか。 |
reactor.core.publisher.Mono<java.lang.Void> | save() 次のように WebSessionStore を介してセッションを保存します。セッションが新しい場合(つまり |
void | setMaxIdleTime(java.time.Duration maxIdleTime) lastAccessTime の後、セッションが期限切れと見なされるまでの最大時間を設定します。 |
void | start() save() が呼び出されたときにセッション ID が送信されるように、セッションを強制的に作成します。 |
java.lang.String getId()
java.util.Map<java.lang.String,java.lang.Object> getAttributes()
@Nullable default <T> T getAttribute(java.lang.String name)
T
- 属性型 name
- 属性名 default <T> T getRequiredAttribute(java.lang.String name)
IllegalArgumentException
を発生させます。T
- 属性型 name
- 属性名 default <T> T getAttributeOrDefault(java.lang.String name, T defaultValue)
T
- 属性型 name
- 属性名 defaultValue
- 代わりに返すデフォルト値 void start()
save()
が呼び出されたときにセッション ID が送信されるように、セッションを強制的に作成します。boolean isStarted()
reactor.core.publisher.Mono<java.lang.Void> changeSessionId()
getId()
は新しいセッション ID を反映します。reactor.core.publisher.Mono<java.lang.Void> invalidate()
reactor.core.publisher.Mono<java.lang.Void> save()
WebSessionStore
を介してセッションを保存します。start()
を介して明示的に開始されているか、属性を追加することによって暗黙的に開始されている必要があります。そうでない場合、このメソッドは効果がありません。WebSessionStore
を介して取得された場合、このメソッドの実装は、セッションが invalidated
であったかどうかを確認し、そうであった場合はエラーを返す必要があります。このメソッドは、アプリケーションで直接使用するためのものではないことに注意してください。代わりに、レスポンスがコミットされる直前に自動的に呼び出されます。
Mono
は、成功またはエラーで完了を示します boolean isExpired()
maxIdleTime
の経過後にセッションが期限切れになった場合は、true
を返します。 通常、セッションがアクセスされたときに有効期限チェックが自動的に行われ、必要に応じて新しい WebSession
インスタンスがリクエスト処理の開始時に作成されるため、アプリケーションはデフォルトで期限切れのセッションについて心配する必要がありません。
java.time.Instant getCreationTime()
java.time.Instant getLastAccessTime()
maxIdleTimeInSeconds
と一緒に使用すると、いつセッションが expired
であるかを判別できます。void setMaxIdleTime(java.time.Duration maxIdleTime)
lastAccessTime
の後、セッションが期限切れと見なされるまでの最大時間を設定します。負の値は、セッションが期限切れにならないことを示します。java.time.Duration getMaxIdleTime()
lastAccessTime
の後、セッションが期限切れになるまでの最大時間を返します。負の時間は、セッションが期限切れにならないことを示します。