16. 会话Tokens生命周期管理(续期、重新登录和撤销)
一个Vault会话Tokens(也称为 LoginToken)与租约很相似,因为它具有TTL、最大TTL,并且可能会过期。
一旦登录Tokens过期,就无法再使用它与Vault进行交互。
因此,Spring Vault提供了面向声明式和响应式使用的 SessionManager API。
Spring Cloud Vault 默认维护会话Tokens的生命周期。 会话Tokens是懒加载获取的,因此实际登录会延迟到首次使用与Vault绑定的会话时进行。 一旦Spring Cloud Vault获取到会话Tokens,它会保留该Tokens直到过期。 下一次使用与会话绑定的活动时,Spring Cloud Vault会重新登录到Vault并获取新的会话Tokens。 在应用程序关闭时,如果Tokens仍处于活动状态,Spring Cloud Vault会撤销该Tokens以终止会话。
会话生命周期默认启用,可通过将 false 设置为 spring.cloud.vault.session.lifecycle.enabled 来禁用。
禁用不被推荐,因为会话Tokens可能会过期,Spring Cloud Vault 将无法再访问 Vault。
spring.cloud.vault:
session.lifecycle:
enabled: true
refresh-before-expiry: 10s
expiry-threshold: 20s
-
enabled控制是否启用会话生命周期管理以刷新会话Tokens。 默认启用。 -
refresh-before-expiry控制会话Tokens在何时刷新。 刷新时间通过从Tokens过期时间减去refresh-before-expiry计算得出。 默认值为5 seconds。 -
expiry-threshold设置过期阈值。 该阈值表示考虑会话Tokens有效的最小TTL持续时间。 TTL较短的Tokens被视为已过期且不再使用。 应大于refresh-before-expiry以防止Tokens过期。 默认值为7 seconds。
见 also: Vault 文档: Tokens续期