Flywaydb Spring Boot和Jasypt - flywaydb无法使用解密属性

时间:2016-05-28 03:23:34

标签: java spring spring-boot jasypt

我为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端,添加了一个使用静态方法

使用org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer加载属性的Bean

此外,我确保上面的Bean实际上使用记录器解密密码。

但每当我运行我的应用程序时,它都会失败并显示错误致命错误:用户的密码身份验证失败 - Spring会在解密之前使用这些属性。

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:0)

这非常简单。请找到下面的博客。

http://blog.trifork.com/2014/12/09/integrating-flywaydb-in-a-spring-framework-application/

本文讨论使用spring配置flyway。由于您已经配置了spring boot,因此可以使用数据源来注入flyway bean。您可以使用Jasypt加密您的属性。 Spring将使用jasypt解密属性后创建数据源。

答案 1 :(得分:0)

有同样的问题,看起来像是飞行器中的错误。

解决方法是设置spring.flyway.password=ENC(...)

相关问题