首页 > 解决方案 > 通过spring auto配置在spring boot应用程序中使用加密密码进行数据库连接

问题描述

尝试使用加密的数据库密码使用spring自动配置连接到数据库

我正在使用 Spring 自动配置连接到数据库。为此,我在属性文件中添加了以下属性:

spring.datasource.url=jdbc:oracle:thin:@ABCDE2D.com:1888:ABCDE2D1
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-oracle.jdbc.driver.OracleDriver

在我的 dao 类中,我有 @Autowired NamedParameterJdbcTemplate 并直接使用它从数据库中获取数据。

直到这里它工作正常。

现在我需要加密属性文件中的密码。为此,我做了以下事情:

  1. 在 pom 中添加了 jasypt-spring-boot-starter
  2. 在属性文件中添加 spring.datasource.password=ENC(NoIv2c+WQYF3LenN0tDYPA==)
  3. 在属性文件中添加了 jasypt.encryptor.password=key

现在我收到以下错误:

Failed to bind properties under 'spring.datasource.password' to  
java.lang.String:
Reason: Failed to bind properties under 'spring.datasource.password' to   
java.lang.String

标签: spring-bootjasypt

解决方案


我提供了一些基本指南,如下所示。

您需要在属性文件中添加以下两个参数才能使应用程序正常工作。这是假设您使用默认加密算法进行加密。如果您正在使用其他一些,请确保相应地更改它。

jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator jasypt.encryptor.algorithm=PBEWithMD5AndDES

您可以参考更多详细信息 https://nirmalbalasooriya.blogspot.com/2020/02/spring-boot-property-encryption-using.html


推荐阅读