当前位置:   article > 正文

SpringBoot配置文件数据库密码加密_com.github.ulisesbocchio 找不到

com.github.ulisesbocchio 找不到

引言

需求:springboot的配置文件中,把连接数据库的密码加密,使之不是以明文存储

步骤

  1. 导入Maven坐标
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.0.0</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 在springboot配置文件中配置(如application.properties中)
	# jasypt加密秘钥,该秘钥可以自定义
   jasypt.encryptor.password = maple@2020
  • 1
  • 2
  1. 建一个测试类来生成密码加密后的密文
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestDemo {
    @Autowired
    StringEncryptor stringEncryptor;//密码解码器自动注入

    @Test
    public void test() {
        System.out.println(stringEncryptor.encrypt("123456"));
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

输出(注意每次输出不一定一样):caCSoLhToaPqpquknipDOg==
该步骤也可以用命令:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=明文密码 password=加密秘钥 algorithm=PBEWithMD5AndDES

注意替换明文密码和加密秘钥!
但是该命令要在Maven库中该jar包所在目录下打开命令窗口执行(例D:\Maven_repository\org\jasypt\jasypt\1.9.2),不然容易报错:找不到或无法加载主类:xxx
4. 把配置文件中的值替换即可,如:

spring.datasource.password=ENC(caCSoLhToaPqpquknipDOg==)
  • 1

如此则密码以密文保存在配置文件中!(使用@SpringBootApplication注解情况下springboot自动读取配置)
如果自己要读取属性配置则需要在读取配置类中注入解码类,例:

@Configuration
public class DatabaseConfig {
    @Autowired
    StringEncryptor encryptor;
    
    @Value("${spring.datasource.driver-class-name}")
    private String driverClassName;
    
    @Value("${spring.datasource.url}")
    private String url;

    @Value("${spring.datasource.username}")
    private String username;

    @Value("${spring.datasource.password}")
    private String pswd;

	//...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

附:

  1. 如果报错:java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/bind/PlaceholdersResolver
    是使用2.1.0版本的jasypt-spring-boot-starter的原因,换成2.0.0即可
  2. 参考博文:
    spring boot升级问题
    spring、spring-boot配置文件属性内容加解密
    SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/467564
推荐阅读
相关标签
  

闽ICP备14008679号