SpringBoot jasypt 对配置文件项加密

1、pom.xml引入jar依赖

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.0.0</version>
</dependency>

2、application.xml配置加/解密的密码

jasypt.encryptor.password=EbfYkitulv73I2p0mXI50JMXoaxZTKJ7

3、使用StringEncryptor生成加密项的密文

import com.xfz.App;
import org.jasypt.encryption.StringEncryptor;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class EncryptorTest {
    @Autowired
    StringEncryptor encryptor;

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

    @Test
    public void getPass() {
        String escUrl = encryptor.encrypt(url);
        String escUsername = encryptor.encrypt(username);
        String escPassword = encryptor.encrypt(password);
        System.out.println("------------------------------------------------------------------------");
        System.out.println(escUrl);
        System.out.println(escUsername);
        System.out.println(escPassword);
        System.out.println("------------------------------------------------------------------------");
        Assert.assertTrue(escUrl.length() > 0);
        Assert.assertTrue(escUsername.length() > 0);
        Assert.assertTrue(escPassword.length() > 0);
    }
}

4、替换application.xml加密项为密文

spring.datasource.url=ENC(密文)
spring.datasource.username=ENC(密文)
spring.datasource.password=ENC(密文)

猜你喜欢

转载自www.cnblogs.com/df-xfz/p/9856397.html