我正在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);
}
使用bootstrap.yml
文件设置Spring Cloud Vault
配置:
spring.application.name: mobsters
spring.cloud.vault:
host: localhost
port: 8200
scheme: http
authentication: TOKEN
token: ...
我收到一个异常消息(full exception here):
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'password' in value "${password}"`
从Vault UI:
发布于 2018-04-24 14:48:12
在HashiCorp Vault 0.10.0中使用Spring Vault/Spring Cloud Vault不起作用,因为键/值后端在默认情况下是使用版本控制挂载的。这有一定的意义,因为版本化的API已经完全改变了,并破坏了现有的客户端实现。上下文路径和响应结构不同。
您有两个选择:
@Value("${data.hello.world}")
.设置为
@Value("${hello.world}")
变为@Value("${data.hello.world}")
.
https://stackoverflow.com/questions/49971667
复制相似问题