首页 > 解决方案 > Cloud Config Server 不解密值

问题描述

我试图让我的 Spring Cloud Config Server 处理加密值,但到目前为止收效甚微。

我创建了一个最小的应用程序,其中包含一个从配置中返回值的控制器。

@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 注释。

在配置服务器端,我有密钥库、无限强度 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 存储库包含一个带有值的 yml

value: '{cipher}AQCbwJFxL/ebeWYHhLhYM ... bj4CtHuo='

使用配置服务器的解密端点解密该值按预期工作,但是当我在演示应用程序中使用该值时,我只是获得了带有 {cipher} 标记的加密值。当我将标记后的值更改为无法解密的值时,配置中没有错误,也没有文档中提到的“无效”值。配置服务器的日志文件非常安静且不确定。当我使用浏览器从配置服务器查询配置时,我也看到了相同的标签剥离值。

我正在使用 Cloud Config Server 1.4.0.RELEASE

标签: javaspring-bootspring-cloudspring-cloud-config

解决方案


执行评论中要求的快速入门,我得到了一个有效的快速入门。将其重新集成到应用程序中只给出了空白和注释更改以及一个工作应用程序......这个问题很可能是由以前版本的工件引起的......


推荐阅读