在实践中,项目的某些配置信息是需要进行加密处理的,以减少敏感信息泄露的风险。比如,在使用Druid时,就可以基于它提供的公私钥加密方式对数据库的密码进行加密。
但更多时候,比如Redis密码、MQ密码等敏感信息,也需要进行加密,此时就没那么方便了。本篇文章给大家介绍一款Java类库Jasypt,同时基于Spring Boot项目来演示一下如何对配置文件信息进行加密。
一个简单的SpringBoot项目
我们先来创建一个简单的Spring Boot项目,构建一个加密数据运用的场景。
无论通过Idea或官网等方式,先创建一个Spring Boot项目,核心依赖为:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 为了方便,通常会引入Lombok依赖 -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>
创建一个配置文件类ConfigProperties:
@Data
@Component
public class ConfigProperties {
@Value("${conf.url}")private String url;
@Value("${conf.password}")private String password;
}
配置文件中的配置属性注入到该类,以供后续使用。
创建一个Controller类,用来测试验证,是否能够正常运行:
@RestController
@RequestMapping("/")
public class ConfigController {
@Resourceprivate ConfigProperties configProperties;
@RequestMappingpublic void print(){System.out.println(configProperties.getUrl());System.out.println(configProperties.getPassword());}
}
对应ConfigProperties类,application.properties中配置如下: