我试图让Spring Cloud Config Server处理加密值但到目前为止收效甚微。
我创建了一个包含Controller从配置中返回值的最小应用程序。
@RestController
public class DemoController {
private ConfigContainer config;
@Autowired
public DemoController(ConfigContainer config) {
this.config = config;
}
@GetMapping(value = "/getdata")
public String getData() {
return config.getValue();
}
}
ConfigContainer通过@Autowired构造函数获取值,我尝试使用和不使用@RefreshScope注释。
在Config Server端,我有密钥库,无限强度JCE和以下bootstrap.yml
spring.cloud.config.server:
git.uri: https://my-git.server/repo
encrypt.enabled: true
encrypt:
key-store:
location: classpath:/server.jks
password: password
alias: alias
secret: secretvalue
git存储库包含一个值为
的ymlvalue: '{cipher}AQCbwJFxL/ebeWYHhLhYM ... bj4CtHuo='
使用配置服务器的解密端点对值进行解密可以按预期工作,但是当我在演示应用程序中使用该值时,我只是获取加密值并删除{cipher}标记。当我将标签之后的值更改为无法解密的内容时,没有错误且没有"无效"配置中的值,如文档中所述。 Config Server的日志文件非常安静且无定论。 当我只是使用浏览器从Config Server查询配置时,我也看到了相同的标签剥离值。
我正在使用Cloud Config Server 1.4.0.RELEASE
答案 0 :(得分:0)
在评论中请求快速入门,我得到了一个快速入门的工作。通过app重新整合这个只给了空白和评论更改以及一个正在运行的应用程序......问题很可能是由以前构建的工件造成的......