使用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,并直接使用它从数据库中获取数据。
到现在为止,一切都很顺利。
现在我需要加密属性文件中的密码。为此,我做了以下工作:
现在我得到了以下错误:
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发布于 2020-02-29 05:58:47
我提供了一些基本指南如下。
为了使应用程序正常工作,您需要在属性文件中添加以下两个参数。这是假设您使用默认加密算法进行加密。如果您正在使用其他的,那么请确保相应地更改它。
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
发布于 2020-11-11 00:43:54
在我的例子中,我给错了jasypt.encryptor.password。例如,下面给出的是我在application.properties中设置的属性:
jasypt.encryptor.password=abc相反,abc,我在加密密码时,给了jasypt作为我的密钥,所以这个隐藏的密码是错误的。然后抛出这个错误。后来我意识到钥匙不对。然后给出正确的密钥我犯了个愚蠢的错误,但花了我4个小时。希望它能对其他人有用。
发布于 2021-05-26 13:40:38
如果您使用的是jasypt依赖项,请确保:
spring.datasource.password = Enc和
jasypt.encryptor.password = key其中Enc是加密密码,而 key 是您用来生成加密密码的密钥。
https://stackoverflow.com/questions/56579295
复制相似问题