我有一个spring-boot应用程序,它使用vault来保存它的秘密。与vault的连接是通过带有@VaultPropertySource注释的专用类实现的。连接配置在bootstrap.yaml文件中。我只需要在应用程序启动时连接才能读取所有秘密,但我看到spring在整个应用程序生命周期中一直在检查连接,所以如果我关闭vault,我的应用程序就会崩溃,因为连接丢失。所以我的问题是,我如何将spring配置为在应用程序启动后不保持连接。
注意:我知道快速失败配置,但这是非常通用的配置。我希望我的应用程序在启动时没有连接读取秘密时会失败,但我不想在整个应用程序生命周期中都依赖于vault。
发布于 2019-04-04 02:12:43
这就是我们在使用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中添加保险存储配置
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希望这能有所帮助。
https://stackoverflow.com/questions/54967896
复制相似问题