SpringBoot系列---【使用jasypt把配置文件密码加密】

使用jasypt把配置文件密码加密

1.引入pom坐标

xml 复制代码
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>

2.新增jasypt配置

2.1使用yml配置文件进行配置

yml 复制代码
jasypt:
  encryptor:
    password: fast_boot_security

2.2使用System进行配置(适用于代码扫描比较严格的场景,把jasypt的密码放入jvm启动参数)

java 复制代码
#在启动类中添加配置
public static void main(String[] args) {
    System.setProperty("jasypt.encryptor.password",System.getProperty("jasypt.publicKey"));
    ConfigurableApplicationContext run = SpringApplication.run(FastBootApplication.class, args);
    System.out.println("run = " + run);
}

在jvm启动参数中添加-D参数:"-Djasypt.publicKey=fast_boot_security"。

3.新增加解密测试类

java 复制代码
@RestController
@Api(tags = "ypt测试工具类")
@RequestMapping("ypt")
public class YptTestController extends BaseController {

    @Resource
    private StringEncryptor stringEncryptor;

    @ApiOperation(value = "加密")
    @PostMapping("/encrypt")
    public R<String> encrypt(String encryptStr) {
        return select(this.stringEncryptor.encrypt(encryptStr));
    }

    @ApiOperation(value = "解密")
    @GetMapping("decrypt")
    public R<String> decrypt(String decryptStr) {
        return select(this.stringEncryptor.decrypt(decryptStr));
    }
}

4.替换配置文件中的明文密码

yml 复制代码
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3307/home-finance?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
    username: root
    password: ENC(iKcnV0M2Ro4gEGmegC62bO2vb7y4wo955bpkFmn9mEKQSU63P1UtwvQKN+7MhJmywkrEauRDOAmc5ZKEZy+cg==)
相关推荐
任风雨1 小时前
13.2.3.Tomcat
java·tomcat
qq_336313934 小时前
java基础-字符串
java
二进制person6 小时前
Java EE初阶 --多线程2
java·开发语言
橙子家7 小时前
Serilog 日志库简单实践(二):控制台与调试 Sinks(.net8)
后端
007php0077 小时前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php
想不明白的过度思考者7 小时前
Rust——异步递归深度指南:从问题到解决方案
开发语言·后端·rust
西西学代码7 小时前
Flutter---个人信息(5)---持久化存储
java·javascript·flutter
陈果然DeepVersion8 小时前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(五)
java·spring boot·kafka·向量数据库·大厂面试·rag·ai智能客服
FAFU_kyp8 小时前
Spring Boot 邮件发送系统 - 从零到精通教程
java·网络·spring boot
脚踏实地的大梦想家8 小时前
【Docker】P2 Docker 命令:从Nginx部署到镜像分享的全流程指南
java·nginx·docker