【发布时间】:2018-02-20 07:21:03
【问题描述】:
我们正在使用带有支持 git 存储库的 spring 云配置服务器来为测试配置文件提供属性。我们收到了将我们的密钥移动到保管库 (hashicorp) 并在我们的属性文件中像往常一样保留常规属性的要求。
在使用保管库之前,我们通过系统属性(使用-Dxxx=yyy)传递密钥,该属性作为常规属性源加载,并且应用程序按预期运行。
现在我必须有一个复合属性源来同时从属性文件和保险库中获取。我不确定如何同时从 Vault 和 git 中提取属性并将它们提供给 Spring Cloud 配置客户端。
我一直在挖掘documentation,发现我们可以拥有复合环境存储库,但是我不能让 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 的现有提供的存储库)。
并且打算使用spring事件ApplicationEnvironmentPreparedEvent并尝试动态附加Vault属性。
我想我忽略了一些东西。您知道读取 Vault 机密并将其作为常规属性文件的属性附加的正确方法是什么吗?
【问题讨论】:
标签: spring spring-boot spring-cloud-config hashicorp-vault spring-cloud-vault-config