Spring Cloud Config 配置和加密

JCE加密 Java Cryptography Extension,要改jre,先用jasypt吧。

1、在git上创建一个工程 https://gitee.com/frankawp/vishnu-config专门放配置文件的

2、加一个文件application-dev.yml 内容如下,给整个项目共享(不知道为什么这个里面没有插入代码的功能,复制后格式都乱了)

#加密配置

jasypt:

encryptor:

password:${JASYPT_ENCRYPTOR_PASSWORD:}

3、然后建一个vishnu-userinfo-dev.yml文件,给vishnu-userinfo工程的开发环境用,内容如下

spring:

datasource:

driver-class-name:com.mysql.cj.jdbc.Driver

username:root

password:ENC(a6j3IUmeDTa8D/bkfDfM/t/y+FAjJ9kz)

url:jdbc:mysql://123.207.56.146:8082/vishnu_userinfo?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false

4、看看实际用的,把spring config工程启动起来,访问http://localhost:1027/vishnu-userinfo/dev/master 可以看到一串json,里面有application-dev.yml 也有 vishnu-userinfo-dev.yml

5、加密

在vishnu-userinfo项目pom.xml中加入

<!--配置属性加密工具 -->

<dependency>

<groupId>com.github.ulisesbocchio</groupId>

<artifactId>jasypt-spring-boot-starter</artifactId>

<version>${jasypt.version}</version>

</dependency>

则数据库密码 password:ENC(a6j3IUmeDTa8D/bkfDfM/t/y+FAjJ9kz) 在使用的时候会被自动解密

a6j3IUmeDTa8D/bkfDfM/t/y+FAjJ9kz 密文是通过jasypt那个jar包在控制台算出来的。

6、秘钥 ${JASYPT_ENCRYPTOR_PASSWORD:} ,表示JASYPT_ENCRYPTOR_PASSWORD是秘钥,这个可以放在启动参数,也可以放在环境变量,放在环境变量比较简单。

TODO: JCE的非对称加密好像会更安全一点,之后再研究 

猜你喜欢

转载自www.cnblogs.com/frankawp/p/10116289.html
今日推荐