从配置获取的配置默认是明文的,有些像数据源这样的配置须要加密的话,须要对配置中心进行加密处理。html
下面使用对称性加密来加密配置,须要配置一个密钥,固然也可使用RSA非对称性加密,但对称加密比较方便也够用了,这里就以对称加密来配置便可。java
JDK下的JCR默认是有长度限制的,须要替换没有长度限制的JCE版本。web
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html面试
把下载包里面的两个jar文件复制替换到JAVA_HOME/jre/lib/security目录下。spring
配置中心配置文件中加入加密密钥。编程
encrypt:
key: 0e010e17-2529-4581-b907-c8edcfd6be09
http://192.168.1.237:7100/encrypt/status
功能正常会显示OKjson
{"status":"OK"}
对develop
字符串加密bash
curl http://192.168.1.237:7100/encrypt -d develop -u config-user:99282424-5939-4b08-a40f-87b2cbc403f6
对develop
字符串解密多线程
curl http://192.168.1.237:7100/decrypt -d 0fb593294187a31f35dea15e8bafaf77745328dcc20d6d6dd0dfa5ae753d6836 -u config-user:99282424-5939-4b08-a40f-87b2cbc403f6
-u username:password 为basic认证架构
spring:
datasource:
username: '{cipher}0fb593294187a31f35dea15e8bafaf77745328dcc20d6d6dd0dfa5ae753d6836'
须要加密的内容以{cipher}
开头,并注意要使节单引号包起来,否则报错。
这样客户端读取出来的配置是自动解密了的,若是要关闭自动解密功能经过客户端本身来解密,同时也要保留加解密的端点能够经过关闭如下配置便可。
spring.cloud.config.server.encrypt.enabled=false
分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。