我为flywaydb Spring启动了配置,完全按照以下链接运行https://flywaydb.org/documentation/plugins/springboot
Flyway使用默认数据源,通过application.properties提供给它 - 条目是
spring.datasource.url= <DB_URL>
spring.datasource.username=testdb
spring.datasource.password=dbpass
现在我将JASYPT添加到应用程序,以便我可以加密密码 .
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt-spring31</artifactId>
<version>1.9.2</version>
</dependency>
我使用JASYPT命令行加密密码并将其更新为文件,即
spring.datasource.password= ENC(EFXC0ORLK+Uy6f)
然后在java端,添加了一个Bean,它使用静态方法使用 org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer
加载属性
此外,我已确保上面的Bean实际上使用 Logger 解密密码 .
But whenever I run my app it fails with error FATAL: password authentication failed for user - 不知何故,spring在获取解密之前正在使用这些属性 .
有任何想法吗?谢谢
2 回答
这非常简单 . 请在下面找到博客 .
http://blog.trifork.com/2014/12/09/integrating-flywaydb-in-a-spring-framework-application/
本文讨论使用spring配置flyway . 由于您已经配置了spring boot,因此可以使用数据源来注入flyway bean . 您可以使用Jasypt加密您的属性 . Spring将使用jasypt解密属性后创建数据源 .
有同样的问题,它看起来像飞路上的一个错误 .
解决方法是设置
spring.flyway.password=ENC(...)