16. 会话Tokens生命周期管理(续订、重新登录和撤销)
Vault 会话Tokens(也称为LoginToken) 与租约非常相似,因为它具有 TTL、最大 TTL,并且可能会过期。
登录Tokens过期后,就无法再用于与 Vault 交互。
因此,Spring Vault 附带了SessionManager用于命令式和响应式使用的 API。
默认情况下,Spring Cloud Vault 维护会话Tokens生命周期。 会话Tokens是延迟获取的,因此实际登录被推迟到第一次会话绑定使用 Vault。 一旦 Spring Cloud Vault 获得会话Tokens,它就会保留它直到到期。 下次使用会话绑定活动时,Spring Cloud Vault 会重新登录到 Vault 并获取新的会话Tokens。 在应用程序关闭时,如果Tokens仍然处于活动状态,Spring Cloud Vault 会撤销Tokens以终止会话。
会话生命周期默认启用,可以通过设置spring.cloud.vault.session.lifecycle.enabled自false.
不建议禁用,因为会话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续订的时间点。 刷新时间的计算方法是减去refresh-before-expiry从Tokens到期时间开始。 默认为5 seconds. -
expiry-threshold设置过期阈值。 阈值表示将会话Tokens视为有效的最小 TTL 持续时间。 TTL 较短的Tokens被视为已过期,不再使用。 应大于refresh-before-expiry以防止Tokens过期。 默认为7 seconds.
另请参阅:Vault 文档:Tokens续订