【SpringBoot3】使用Jasypt加密数据库用户名、密码等敏感信息
import org.jasypt.encryption.StringEncryptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
public class JasyptConfig {
@Bean
@Profile("!test") // 确保不在测试环境中运行
public StringEncryptor stringEncryptor() {
// 这里可以配置你的StringEncryptor的具体实现,比如使用默认的StrongStringEncryptor
// 或者使用更安全的算法,比如配置自定义的加密器等
org.jasypt.stronghold.StrongStringEncryptor strongEncryptor = new org.jasypt.stronghold.StrongStringEncryptor();
strongEncryptor.setPassword("your-encryption-password"); // 设置加密密钥
return strongEncryptor;
}
}
在Spring Boot应用的配置文件中,使用Jasypt提供的EL表达式来引用加密的数据库凭据:
spring.datasource.username=ENC(your-encrypted-username)
spring.datasource.password=ENC(your-encrypted-password)
在上述配置中,ENC()
是一个占位符,表示其内容是加密的。your-encrypted-username
和your-encrypted-password
应该是你使用StringEncryptor
加密的字符串。
注意:在测试环境中,你可能不希望进行加密,因此可以通过设置Spring的Profile为test
来避免在测试环境中配置加密的bean。
评论已关闭