Grails 3 和 Spring 安全插件

Grails 3 and Spring Security Plugin

我最近才开始使用 Grails,我想测试 Spring 安全插件。我正在使用 Grails v3.0.0RC2,我发现很难找到包含很多内容的准确文档。

我正在查看位于 http://grails.org/plugin/spring-security-core 的 Spring 安全插件的 Grails 页面,它告诉我将以下内容添加到 grails-app/conf/BuildConfig

plugins {
  …
  compile ':spring-security-core:2.0-RC4'
  …
}

现在,Grails 3 已经取消了 BuildConfig,转而使用 Gradle。所以我想我可以将那条编译行编译到 build.gradle 中的 "dependencies" 部分,它会起作用,就像这样:

dependencies{
  ...
  compile:":spring-security-core:2.0-RC4"
}

然而,这并没有奏效。我收到错误 "Could not find :spring-security-core:2.0-RC4...".

然后我想,'嘿,这是一个插件,让我尝试用 "org.grails.plugins" 作为它的前缀,就像我在 build.gradle 文件的其他地方看到的那样:

dependencies{
  ...
  compile:"org.grails.plugins:spring-security-core:2.0-RC4"
}

还是不行。

我已经通过添加在 search.maven.org 上找到的依赖项来编译它,如下所示:

dependencies{
  ...
  compile 'org.springframework.security:spring-security-core:4.0.0.RELEASE'
}

但我认为这不是正确的做法,因为 Grails 文档说我应该有权访问命令

grails s2-quickstart

安装插件后,我在使用 Maven 存储库时没有这样做。

我确定我犯了一个简单的配置错误,因为我对 Grails、Spring 和 Gradle 都很陌生,所以非常感谢您提供的任何帮助提供。

Grails 的 Spring Secuirty 核心插件与 Grails 3 不兼容。但是,由于 Grails 3 基于 Spring Boot,您可以使用 Spring Security Starter for Spring Boot 代替。

这已经 discussed 在 Grails 开发人员邮件列表中,并且未来许多 Grails 插件将不会移动到 Grails 3,而是将被纯 Spring 解决方案取代。

更新

自从最初提出这个问题以来,已经为 Grails 3.x 创建了一个 Spring 安全插件。可以在这里找到:https://bintray.com/grails/plugins/spring-security-core/view

"Spring Security Starter for Spring Boot" 是一个很好的起点,但如果您想节省一些时间来弄清楚如何让它与 Grails 一起工作,请查看此 helpful blog post

我写了 the blog post @Jamie referenced in his answer and I added a new blog post 描述如何使用来自 Spring-Security-Core 插件的 Gorm 域 类 来自 Grails 2。

dependencies {
     ...
     compile 'org.grails.plugins:spring-security-core:3.0.4'
     ...
}

这是我用过的并且对我有用