Cloud Config Server无法解密值

时间:2018-05-29 09:14:23

标签: java spring-boot spring-cloud spring-cloud-config

我试图让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存储库包含一个值为

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

使用配置服务器的解密端点对值进行解密可以按预期工作,但是当我在演示应用程序中使用该值时,我只是获取加密值并删除{cipher}标记。当我将标签之后的值更改为无法解密的内容时,没有错误且没有"无效"配置中的值,如文档中所述。 Config Server的日志文件非常安静且无定论。 当我只是使用浏览器从Config Server查询配置时,我也看到了相同的标签剥离值。

我正在使用Cloud Config Server 1.4.0.RELEASE

1 个答案:

答案 0 :(得分:0)

在评论中请求快速入门,我得到了一个快速入门的工作。通过app重新整合这个只给了空白和评论更改以及一个正在运行的应用程序......问题很可能是由以前构建的工件造成的......