java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Nacos配置内容加密实现

Nacos配置内容加密实现过程

作者:东皋长歌

文章介绍了在Nacos配置中实现加密的步骤,包括引入AES加密插件、重新编译Nacos服务端、修改SpringBoot应用配置前缀,并确保加密后内容在数据库存储而应用端能解密读取

一、背景

因为项目中安全检查的要求,需要将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端读取的时候都是解密后的明文。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文