如何在Spring Boot中使用Flyway和JDBC安全性?

时间:2015-02-16 12:51:10

标签: jdbc spring-security spring-boot flyway

我想在我的Spring Boot项目中使用Flyway作为数据库迁移处理的首选方式(使用当前的V1.2.1.RELEASE)。

到目前为止这工作正常但是使用JDBC DataSource与Spring Security的集成似乎会覆盖Flyway机制。

遵循简单的方案:

  • Spring Boot 1.2.1
  • PostgreSQL 9.4.1
  • 根据Spring Security文档的用户,组和权限的Flyway迁移脚本

问题: Flyway迁移脚本不会按预期在启动时执行。

可能原因:如果使用Spring Boot项目至少使用JPA,似乎Flyway只在启动时执行。由于Spring Security基于普通的JDBC,我试图临时使用Spring Boot docs(第68.3章)中描述的基于JDBC的数据库初始化方案,但是(如文档所述)这种方式就像“穷人方法”我也非常希望将Flyway用于包含用户/组/权限信息的这些表。

1 个答案:

答案 0 :(得分:1)

好的,经过进一步调查后我发现了问题:

实际上,在标准的Spring Boot项目中,安全上下文在任何基于Flyway的迁移发生之前都已初始化。

通常这不是一个大问题,但我也使用AuthenticationManagerBuilder来创建默认的admin用户。这似乎是创建这样一个初始用户帐户的错误方法。