在 Pivotal Cloud Foundry 上为 Spring Boot 应用程序外部化 Vault 令牌/后端配置
Posted
技术标签:
【中文标题】在 Pivotal Cloud Foundry 上为 Spring Boot 应用程序外部化 Vault 令牌/后端配置【英文标题】:Externalize Vault token/backend configuration for SpringBoot application on Pivotal Cloud Foundry 【发布时间】:2019-06-24 04:53:28 【问题描述】:我需要外部化 Vault 令牌和后端以在我的 SpringBoot/Cloud 应用程序中使用,以便可以将相同的二进制文件部署到不同的 Pivotal Cloud Foundry 空间。例如我有一个.jar
我想push
到Dev
、Test
、QA
、PROD
空间而不必重建.jar
。
我还有一个由git
回购支持的ConfigServer
和一个User Provided Service
,它们可以保存信息,但只是移动了外部化问题,并没有解决它。而且它会导致更多问题,特别是创建对象的顺序。
我正在努力获取 vault token
和 vault backend
等相关信息,以使用来自 .jar
的外部化设置。
我能找到的所有示例都使用bootstrap.properties
或application.yml
spring:
cloud:
config:
token: YourVaultToken
这显然行不通,因为它嵌入在 .jar
中并且是特定于环境的。
使用默认 Spring 魔术绑定的解决方案将不起作用,因为 我需要使用 VaultTemplate
手动进行调用。
外化客户端配置最惯用的方法是什么 如何连接到 Vault 并使用
VaultTemplate
阅读秘密,我不必重建.jar
用于每个环境。
【问题讨论】:
【参考方案1】:这是spring boot的配置。您可以使用环境变量 (SPRING_CLOUD_CONFIG_TOKEN=xxx
) 或 java 系统属性 (-Dspring.cloud.config.token=xxx
)。你也可以在 CF 上使用User Provided Services。
【讨论】:
这些建议都不能解决手动连接到保管库服务的问题。只是在ENV
中设置该令牌不允许我连接到保险库,还有其他必须设置的东西,backend
、uri
等。我已经尝试了这两个和两个 解决方案 在对象创建顺序方面存在缺陷。 无论哪种方式,这都不是真正的答案,而更像是评论。
不,不能手动使用VaultTemplate
。它只适用于自动魔法属性绑定,这对我的场景来说是不够的。
抱歉,您似乎询问了如何将令牌外部化。也许您可以在问题中解释您要做什么。你没有在那里提到VaultTemplate
。以上是关于在 Pivotal Cloud Foundry 上为 Spring Boot 应用程序外部化 Vault 令牌/后端配置的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 微服务在 Pivotal Cloud Foundry 平台上部署时无法通过 Kerberos 身份验证
Pivotal Cloud Foundry - Spring Cloud 服务
如何为 Pivotal Cloud Foundry 托管的 JSP/Servlet 应用程序从 SiteMinder 会话注销?
在 Pivotal Cloud Foundry 上为 Spring Boot 应用程序外部化 Vault 令牌/后端配置