在Spring Boot中使用jasypt-spring-boot進行加密,可是提示:java
Description: 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 Action: Update your application's configuration
或提示git
Description: Failed to bind properties under 'spring.datasource.url' to java.lang.String: Reason: Failed to bind properties under 'spring.datasource.password' to java.lang.String Action: Update your application's configuration
最後的異常是這個:
github
查閱了相關issue,發現是3.0.2更改了默認的加密算法,最後的辦法是把版本降到2.1.2:
算法
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency>
接着從新加密配置,可是2.1.2不支持使用環境變量做爲加密的口令,在IDEA中測試的時候須要在運行配置加上spring
-Djasypt.encryptor.password=xxxx
部署到Tomcat時添加環境變量:bash
export JAVA_OPTS="-Djasypt.encryptor.password=xxxx"