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

问题描述 投票:0回答:2

我为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在解密之前使用了这些属性。

有任何想法吗?谢谢

java spring spring-boot jasypt
2个回答
0
投票

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

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

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


0
投票

有同样的问题,它看起来像飞路上的一个错误。

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

© www.soinside.com 2019 - 2024. All rights reserved.