且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

第十四章:SpringCloud 依赖Git仓库实现配置对称加密

更新时间:2022-07-18 10:42:38

先决条件:要使用加密和解密功能,您需要安装在JVM中的全功能JCE(默认情况下不存在)。您可以从Oracle下载“Java加密扩展(JCE)无限强度管辖策略文件”,并按照安装说明进行操作(基本上将JRE lib / security目录中的2个策略文件替换为您下载的那些文件)。

要配置一个对称密钥,只需要设置encrypt.key一个秘密字符串(或者使用一个环境变量ENCRYPT_KEY使其不在纯文本配置文件中)。

server: 
  port: 8080
spring:
  cloud:
    config:
      server:
        git:
          uri: https://xxxxx    #自己的git配置仓库
          username:
          password:
encrypt:
  key: cool

如果你正在为配置客户端应用程序设置一个远程配置库,它可能包含这样的一个application.yml例如:

  • application.yml
spring:
  datasource:
    username: dbuser
    password: '{cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ'
.properties文件中的加密值不能包含在引号中,否则该值不会被解密:
  • application.properties
spring.datasource.username:dbuser
spring.datasource.password:{cipher} FKSAJDFGYOS8F7GLHAKERGFHLSAJ

服务器也暴露/encrypt和/decrypt端点(假设这些将被保护,并且只能被授权代理访问)。如果您正在编辑远程配置文件,则可以使用配置服务器通过发送到/encrypt端点来加密值

最后我们访问 127.0.0.1:8080/master/laojiao.yml
即可显示解密后的配置内容