Using encrypted password for database connection in spring boot application through spring auto configuration

ぃ、小莉子 提交于 2021-01-28 07:53:05

问题


Trying to use encrypted database password to connect to database using spring auto configuration

I am using Spring auto configuration to connect to database. For that i added below properties in properties file:

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

In my dao class, i have @Autowired NamedParameterJdbcTemplate and using it directly to get data from database.

Till here it is working fine.

Now i need to encrypt the password in properties file. For that i did the below:

  1. Added jasypt-spring-boot-starter in pom
  2. Added spring.datasource.password=ENC(NoIv2c+WQYF3LenN0tDYPA==) in properties file
  3. Added jasypt.encryptor.password=key in properties file

Now i am getting the below error:

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

回答1:


I'm providing some basic guide as follows.

You need to add following two parameters in to property file in order application to work properly. This is assuming you are encrypting using default encryption algorithm. If you are useing some other, then make sure to change it accordingly.

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

You can refer to more details https://nirmalbalasooriya.blogspot.com/2020/02/spring-boot-property-encryption-using.html




回答2:


In my case I was giving wrong jasypt.encryptor.password. For Example given below is properties I have set in my application.properties:

jasypt.encryptor.password=abc

instead abc I gave jasypt as my secret key while encrypting the password so the encripted password is wrong. Then it throwing this error. Later I realised and found that the key is not correct. Then gave the right key i.e., abc.Then it worked for me. Silly mistake but it cost me 4 hours. Hope it will be useful for others.



来源:https://stackoverflow.com/questions/56579295/using-encrypted-password-for-database-connection-in-spring-boot-application-thro

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!