Java 将Pivotal Cloud Foundry上SpringBoot应用程序的Vault令牌/后端配置外部化
我需要将Vault令牌和后端外部化,以便在SpringBoot/Cloud应用程序中使用,以便将相同的二进制文件部署到不同的关键云铸造空间。例如,我有一个Java 将Pivotal Cloud Foundry上SpringBoot应用程序的Vault令牌/后端配置外部化,java,spring-boot,spring-cloud,cloud-foundry,spring-vault,Java,Spring Boot,Spring Cloud,Cloud Foundry,Spring Vault,我需要将Vault令牌和后端外部化,以便在SpringBoot/Cloud应用程序中使用,以便将相同的二进制文件部署到不同的关键云铸造空间。例如,我有一个.jar我想推到Dev,测试,QA,PROD空间,而不必重建.jar 我还有一个ConfigServer,由gitrepo支持,还有一个用户提供的服务,它可以保存信息,但只是移动了外部化问题,并不能解决它。它会导致更多的问题,特别是对象的创建顺序 我正在努力获取相关信息,如vault令牌和vault后端,以使用.jar中的外部化设置 我能找到的
.jar
我想推
到Dev
,测试
,QA
,PROD
空间,而不必重建.jar
我还有一个ConfigServer
,由git
repo支持,还有一个用户提供的服务
,它可以保存信息,但只是移动了外部化问题,并不能解决它。它会导致更多的问题,特别是对象的创建顺序
我正在努力获取相关信息,如vault令牌
和vault后端
,以使用.jar
中的外部化设置
我能找到的所有示例都使用bootstrap.properties
或application.yml
spring:
cloud:
config:
token: YourVaultToken
这显然是行不通的,因为它嵌入在.jar
中,并且是特定于环境的
使用默认Spring magic绑定的解决方案将不起作用,因为我需要使用VaultTemplate
手动调用
将客户机配置外部化的最惯用方法是什么
如何连接到Vault并使用VaultTemplate
读取机密,而无需重建
.jar
适用于每个环境
这是spring boot的配置。您可以使用环境变量(
SPRING\u CLOUD\u CONFIG\u TOKEN=xxx
)或java系统属性(-Dspring.CLOUD.CONFIG.TOKEN=xxx
)。您也可以在CF.上使用这两个建议都不能解决手动连接到vault服务的问题。仅在ENV
中设置该令牌不允许我连接到vault,还必须设置其他东西,后端
,uri
,等等。我已经尝试了这两种方法,但这两种解决方案都存在对象创建顺序方面的缺陷。这不是一个真正的答案,更像是一个注释。不,这不适用于手动使用VaultTemplate
。它只适用于自动魔法属性绑定,这对于我的场景来说是不够的。对不起,您似乎询问了如何将令牌外部化。也许你可以解释一下你想在问题中做什么。您没有在那里提到VaultTemplate
。