Springboot 在代码层面设置jasypt.encryptor.password
时间: 2024-03-07 07:47:19 浏览: 24
在 Spring Boot 项目中,可以通过在配置文件中设置 jasypt.encryptor.password 属性来配置 Jasypt 的加密密码。但是,如果想要在代码层面设置密码,则可以通过以下方式:
1. 定义一个 EncryptablePropertyResolver 类,该类实现了 org.jasypt.spring31.properties.EncryptablePropertyResolver 接口。
2. 在该类中实现 resolvePropertyValue 方法,该方法接收一个属性名和属性值,返回一个解密后的属性值。
3. 在 Spring Boot 配置类中注册 EncryptablePropertyResolver 类,例如:
```java
@Configuration
public class JasyptConfig {
@Bean(name = "myEncryptablePropertyResolver")
public EncryptablePropertyResolver encryptablePropertyResolver() {
return new MyEncryptablePropertyResolver();
}
@Bean(name = "encryptorBean")
public StandardPBEStringEncryptor standardPBEStringEncryptor() {
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword("mySecretKey"); // 设置加密密码
return encryptor;
}
}
```
4. 在需要加密的属性上使用 @EncryptProperty 注解,例如:
```java
@Value("${my.property}")
@EncryptProperty
private String myProperty;
```
通过以上方式,在代码层面设置 Jasypt 的加密密码,可以更加灵活地控制加密过程,同时保证了加密解密的安全性。