RuoYi前后端分离框架集成Jasypt实现配置信息加密
一、背景
项目采用RuoYi前后端分离框架搭建,版本为3.8.9。在项目中,关键配置信息(如数据库密码、API密钥等)通常以明文形式存储在配置文件中,存在安全风险。公司要求关键配置信息不能随意泄露,为保障系统安全性,需对这些敏感信息进行加密处理,确保即使配置文件泄露,攻击者也无法直接获取原始数据。
二、Jasypt
jasypt-spring-boot-starter
是Spring Boot生态中用于敏感配置加密的核心工具库,基于Jasypt(Java Simplified Encryption)实现。它通过简单注解和配置,实现对application.properties
或application.yml
中密码、API密钥等敏感信息的加密存储,运行时自动解密。典型应用场景包括数据库连接加密、云服务凭证保护等,有效提升配置安全性。因此,本人就采用这个轮子进行系统配置信息加密。
三、与RuoYi框架集成
Jasypt的使用,可以直接参照官方文档,由于本项目的基座也是springboot,因此直接采用官方提供的jasypt-spring-boot-starter是最简单方便的,版本直接使用官方最新的。
1.引入maven依赖
在若依后端pom父工程中引入如下依赖进行版本管理:
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.5</version></dependency>
在具体的使用模块中引入依赖,本项目是在framework模块中使用的。
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId></dependency>
2.采用工具对选定配置生成密文
可以采用Jasypt官方工具生成密文,也可以直接编写工具类实现指定配置信息加密,本人采用的是后。工具类中EnvironmentStringPBEConfig配置的加密算法需要与项目采用的加密算法一致,不一致在运行项目时会解密失败导致启动失败,该工具类中的算法以及加密密匙key等均可以通过运行参数进行指定,如图: