我们正在使用带有支持 git 存储库的 spring 云配置服务器来为测试配置文件提供属性。我们收到了将我们的密钥移动到保险库 (hashicorp) 并在我们的属性文件中像往常一样保留常规属性的要求。
在使用 Vault 之前,我们通过系统属性(使用-Dxxx=yyy
)传递密钥,该属性作为常规属性源加载,并且应用程序按预期工作。
现在我必须有一个复合属性源来同时从属性文件和保险库中获取。我不确定如何同时从 Vault 和 git 中提取属性并将它们提供给 spring 云配置客户端。
我一直在研究文档,发现我们可以拥有复合环境存储库,但是我不能让 vault 和 git 同时工作。
我尝试了多种方法,例如放置这样的属性:
spring.cloud.config.server.git.uri=file:///E:/Project/git/myappdata
spring.cloud.config.server.vault.host=127.0.0.1
spring.cloud.config.server.vault.port=8200
spring.cloud.config.server.vault.scheme=http
spring.cloud.config.server.vault.backend=secret
spring.cloud.config.server.vault.defaultKey=myapp
还使用 spring cloud vault 进行了测试,我可以获取秘密,但是它们没有提供给我的客户。
曾尝试使用实现一个EnvironmentRepository
接口,但这是为了创建一个新的存储库(我只想将 1 个保险库属性添加到基于 git 的现有提供的存储库)。
并打算使用春季事件 ApplicationEnvironmentPreparedEvent 并尝试动态附加保险库属性。
我想我忽略了一些东西。您知道读取保管库机密并将其附加为常规属性文件的属性的正确方法是什么吗?