如何通过DataSourceBuilder将jasypt加密密码传递给数据库

问题描述 投票:0回答:1

需要在.properties文件中存储加密密码然后需要在配置类中解密并需要使用jasypt传递到数据库

尝试在spring启动应用程序中使用jasypt加密和解密密码 参考qazxsw poi qazxsw poi

link-1中添加了依赖项

link-2

POM.XML文件中添加了加密密码

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

在Spring Boot Application类中

.properties

在配置类中

mail.encrypted.property=ENC(Fy/hjJHHbIYYwijL5YwXAj8Ho2YTwzhi)

但由于密码错误而导致错误,而无需添加加密代码应用程序正常工作

java spring-boot encryption configuration jasypt
1个回答
0
投票

我设法让它像这样工作:

  1. encryptorBean!加密的部分将通过这个bean解密。它在application.properties文件中与jasypt.encryptor.bean占位符连接,这是您提供解密工作的神奇字(密码)的地方

application.properties

@SpringBootApplication
@EnableEncryptableProperties
@PropertySource(name="EncryptedProperties", value = "classpath:encrypted.properties")
public class MyApplication {
    ...
}

那么,我如何访问加密属性? “魔术”在以下摘录中完成

数据库配置器

@Value("${mail.encrypted.property}")
private String password;

@ConfigurationProperties(prefix = "mail")
public Datasource ConfigProperties {
    return DataSourceBuilder
        .create()
        .password(password)
        .build();
}

在幕后环境已经将classpath.properties注册为加密属性源,因此当你要求一个属性(如果它被ENC()包围时,它会调用jasypt.encryptor.bean来尝试解码该属性。

希望这可以帮助!

干杯

© www.soinside.com 2019 - 2024. All rights reserved.