Interface RefreshSessionStore
public interface RefreshSessionStore
Refresh Session persistence SPI。
框架只定義 session family 的資料與 credential-use/compare-and-rotate/revoke 契約,不綁定 JPA、Redis
或特定租戶模型。實作的 use(RefreshSessionStore.CredentialUse)、rotate(RefreshSessionStore.Rotation) 與 revoke(UUID, Instant, String) 必須各自在單一原子操作中鎖定或比較版本;
不得以「先讀、無條件寫」讓同一 generation 成功兩次。
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final record供 identity switch 等會立即替換或撤銷 family 的流程,原子驗證 credential 並滑動 idle window。 同一 credential 的並行使用可依序成功;logout/expiry/rotation 與本操作以相同 row lock 排序。static final recordstatic final recordstatic enumstatic interfacestatic final recordstatic enumstatic final recordstatic final recordcompare-and-rotate command。expectedGeneration與currentCredentialHash必須同時吻合。static final recordstatic enumstatic interfacestatic final record -
Method Summary
Modifier and TypeMethodDescriptionvoidcreate(RefreshSessionStore.NewSession session) intdeleteExpired(Instant now) findByCredentialHash(String credentialHash) findByCredentialSelectorHash(String credentialSelectorHash) 以秘密 selector 找 family,讓已輪替 verifier 仍可被辨識為 replay。revokeByPolicy(String policy, String reference, Instant revokedAt, String reason) 依應用政策綁定撤銷 family,供 consent 等外部授權被撤回時主動失效既有 Session。rotate(RefreshSessionStore.Rotation rotation) use(RefreshSessionStore.CredentialUse credentialUse)
-
Method Details
-
create
-
findByCredentialHash
-
findByCredentialSelectorHash
以秘密 selector 找 family,讓已輪替 verifier 仍可被辨識為 replay。 -
use
-
rotate
-
revoke
-
revokeByPolicy
-
deleteExpired
-