Vault Spring客户端保持与Vault的连接

问题描述 投票:0回答:1

我有一个使用Vault来保密的spring-boot应用程序。与Vault的连接是通过带有@VaultPropertySource注释的专用类。连接配置位于bootstrap.yaml文件中。我只需要在应用程序启动时连接就可以读取所有的秘密,但是我看到spring一直在检查应用程序生命周期内的连接,所以如果我关闭了Vault,我的应用程序就会崩溃,因为连接丢失了。所以我的问题是,如何配置spring以在应用程序启动后不保持连接。

注意:我知道快速失败的配置,但这是非常通用的配置。我希望如果在启动时没有连接来读取秘密,我的应用程序将会失败,但我不希望在整个应用程序生命周期中依赖于Vault。

java spring-boot hashicorp-vault spring-vault
1个回答
0
投票

这是我们使用spring配置服务器在我们的设置中配置的方式:

在pom.xml中为客户端添加依赖关系信息

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-vault-config</artifactId>
     <version>1.1.0.RELEASE</version>
</dependency>

在bootstrap.yml中添加Vault配置

spring:
  cloud:
    config:
      uri: ${CONFIG_SERVER_URI}
      username: ****
      password: ****
    vault:
      uri: ${VAULT_URI}
      authentication: token
      token: ${SPRING_CLOUD_VAULT_TOKEN}
  application:
    name: APP-NAME

运行jar时提供所需的参数。

exec java $JAVA_OPTS -jar -Drun.arguments=--spring.cloud.config.uri=${CONFIG_SERVER_URI} \
     -Drun.arguments=--spring.cloud.vault.uri=${VAULT_URI} \
     -Dspring.cloud.vault.token=${SPRING_CLOUD_VAULT_TOKEN} \
     APP-NAME.jar

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.