一、背景
因为项目中安全检查的要求,需要将nacos配置的内容进行加密,所以需要实现将配置内容加密处理,这里引入nacos-aes-encryption-plugin插件来完成这一需求。
二、实现步骤
1. 重新编译nacos服务端
1.1 从github下载nacos源码,地址https://github.com/alibaba/nacos
1.2 在config模块中引入插件:
<dependency> <groupid>com.alibaba.nacos</groupid> <artifactid>nacos-aes-encryption-plugin</artifactid> <version>1.0.0-snapshot</version> </dependency>
1.3 服务端编译:
cd nacos && mvn -prelease-nacos -dmaven.test.skip=true clean install -u
其中,-prelease-nacos 是编译参数,表示编译的是 nacos release 版本。-u参数表示强制更新依赖。
1.4 编译完成后,会在distribution/target目录下生成nacos-server-x.x.x.zip包,可作为nacos的版本包直接使用。
1.5 使用上面的包重新部署nacos
2. nacos页面配置
进入nacos控制台,配置内容正常处理,配置名以"cipher-aes-"开头。
例:cipher-aes-user
3. springboot应用服务端(后端服务)
3.1 在服务中引入
<dependency> <groupid>com.alibaba.nacos</groupid> <artifactid>nacos-aes-encryption-plugin</artifactid> <version>1.0.0-snapshot</version> </dependency>
3.2 将项目的yml文件中的"spring.cloud.nacos.config.prefix"改为"cipher-aes-"开头。
例:cipher-aes-user。
4. 结果
上述配置完之后,在数据库端看到的配置内容就是加密后的内容,但是在应用端和web端读取的时候都是解密后的明文。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论