配置内容的加解密
在Git仓库中明文存储配置属性的。很多场景下,对于某些敏感的配置内容(例如数据库账号、密码等),应当加密存储。
Config对称加解密
1、安装JCE
默认情况下我们的JRE自带了JCE,但是默认是一个有限长度的版本,需要到oracle官网下载一个不限长度的JCE。
JCE下载地址
https://www.oracle.com/technetwork/java/javase/downloads/jce-all-download-5170447.html
下载JCE并解压(eg:jce_policy-8.zip),按照其中的README.txt的说明安装。
JCE的安装非常简单,其实就是将JDK/jre/lib/security目录中的两个jar文件(local_policy.jar、US_export_policy.jar)替换为压缩包中的jar文件。
2、在config server服务的bootstrap.yml文件中配置对称密匙
#博客:https://blog.csdn.net/u014296316/article/details/80881974 #http://localhost:6063/encrypt/status 验证加密解密功能是否正常 #http://localhost:6063/encrypt 只允许post请求 #http://localhost:6063/decrypt 只允许post请求 encrypt: key: Lynch
3、访问 http://localhost:6063/encrypt/status 验证加密解密功能是否正常
4、访问/encrypt和/decrypt进行加密解密
http://localhost:6063/encrypt 只允许post请求
http://localhost:6063/decrypt 只允许post请求
5、配置文件中使用{cipher}开头标识加密数据
6、在Config Client服务获取加密数据
import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** * 这边的@RefreshScope注解不能少,否则即使调用/refresh,配置也不会刷新 */ @RestController @RefreshScope public class ConfigClientController { @Value("${env}") private String env; @Value("${password}") private String password; @Value("${username}") private String username; @GetMapping("/config/profile") public String hello() { return this.env+","+this.password+","+this.username; } }
http://localhost:6062/config/profile
原文地址:https://www.cnblogs.com/linjiqin/p/10338588.html
时间: 2024-10-15 04:26:11