我为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实际上使用记录器解密密码。
但是每当我运行我的应用程序时,它都会失败并显示错误致命:用户的密码验证失败 - 不知何故,Spring在解密之前使用了这些属性。
有任何想法吗?谢谢
这非常简单。请在下面找到博客。
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(...)