如何配置Spring Vault Repository以适配Vault KV存储V2版本
适配Spring Vault Repository到KV存储V2版本
你碰到的这个问题是因为Spring Cloud Vault默认会使用KV存储的V1版本,而你的环境实际用的是V2版本,只需要在配置中显式指定KV的版本,就能让Repository生成正确的请求URL。
修改配置文件
在你的Spring Cloud Vault配置里,给kv节点添加version: 2配置项,指定使用KV V2版本:
spring: cloud: vault: host: vault scheme: http authentication: TOKEN token: xxx-my-token-xxx kv: backend: secret version: 2 # 新增该行,启用KV存储V2版本支持
配置生效后的效果
添加这个配置后,Spring Vault Repository就会按照KV V2的API规范生成请求:
- 调用
credentialsRepository.findById("sullrich")时,请求URL会变为http://vault:8200/v1/secret/data/garmin-connect-credentials/sullrich,匹配V2的读取路径; - 调用
credentialsRepository.findAll()时,请求URL会变为http://vault:8200/v1/secret/metadata/garmin-connect-credentials?list=true,对应V2的列表查询路径。
额外说明
你的@Secret实体类和CredentialsRepository的定义都是完全正确的,不需要做任何修改,仅通过调整配置就能完成版本适配。
内容的提问来源于stack exchange,提问作者Sebastian Ullrich
相关产品推荐
相关产品推荐

