【发布时间】:2018-10-02 22:38:30
【问题描述】:
我在dev 模式下运行Docker Vault container,但我无法读取位于/secret/mobsters/ 的名为password 的秘密。
这里是Spring logs。
运行vault kv get secret/mobsters 返回密码键值对。我也可以在本地访问 Vault 服务器。
这是我引用秘密的方式:
@Value("${password}")
String password;
@PostConstruct
private void postConstruct() {
System.out.println("My password is: " + password);
}
Spring Cloud Vault 配置是使用bootstrap.yml 文件设置的:
spring.application.name: mobsters
spring.cloud.vault:
host: localhost
port: 8200
scheme: http
authentication: TOKEN
token: ...
我收到消息异常(完全异常here):
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'password' in value "${password}"`
来自保险柜用户界面:
【问题讨论】:
-
看起来好像您使用的是 Vault 0.10.0。如果是这样,请参阅github.com/spring-cloud/spring-cloud-vault/issues/209。
-
我将 docker 容器降级到 v0.9.5 并且成功了!您应该将此作为答案发布。
标签: docker spring-cloud spring-cloud-vault-config spring-vault