带有 grails 的 Spring Security 核心插件

Posted

技术标签:

【中文标题】带有 grails 的 Spring Security 核心插件【英文标题】:Spring Security Core Plugin with grails 【发布时间】:2016-08-30 04:50:26 【问题描述】:

我在开发应用程序中通过 GGTS 3.4.0 使用 grails 2.3.3,现在我想开始使用 Spring 安全核心插件。

我试图通过在 BuildConfig.groovy 文件的插件部分中添加以下行来将其包含在我的应用程序构建中,但未成功:

compile "org.grails.plugins:spring-security-core:2.0.0"

但是在运行应用程序时会在该插件上出现此依赖错误:

解决获取依赖的错误:解析依赖失败

查看我尝试过的另一个注释:

compile "org.grails.plugins:spring-security-core:2.0-RC2"

在 buildconfig 文件的插件部分和:

        mavenRepo 'http://repo.spring.io/milestone'

在文件的repositories部分存在同样的依赖错误问题。

我使用的 grails/GGTS 版本的插件版本是否错误?

这是当前的 BuildConfig.groovy :

grails.servlet.version = "2.5" // Change depending on target container     compliance (2.5 or 3.0)
grails.project.work.dir = 'target'
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.target.level = 1.6
grails.project.source.level = 1.6
//grails.project.war.file = "target/$appName-$appVersion.war"

grails.project.dependency.resolution = 
// inherit Grails' default dependencies
inherits("global") 
    // specify dependency exclusions here; for example, uncomment this to    disable ehcache:
    // excludes 'ehcache'

log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info',  'debug' or 'verbose'
checksums true // Whether to verify checksums on resolve

repositories 
    inherits true // Whether to inherit repository definitions from plugins

    grailsPlugins()
    grailsHome()
    grailsCentral()

    mavenLocal()

    mavenCentral()

    // uncomment these (or add new ones) to enable remote dependency  resolution from public Maven repositories
    //mavenRepo "http://snapshots.repository.codehaus.org"
    //mavenRepo "http://repository.codehaus.org"
    //mavenRepo "http://download.java.net/maven/2/"
    //mavenRepo "http://repository.jboss.com/maven2/"

    mavenRepo 'http://repo.spring.io/milestone'

    grailsRepo "http://grails.org/plugins"


dependencies 
    // specify dependencies here under either 'build', 'compile', 'runtime',  'test' or 'provided' scopes eg.

    // runtime 'mysql:mysql-connector-java:5.1.20'
    runtime 'mysql:mysql-connector-java:5.1.27'

    compile "org.grails.plugins:spring-security-core:2.0.0"




plugins 
    //runtime ":hibernate:$grailsVersion"

    //compile 'utils:utils:1.4-SNAPSHOT'

    compile ":hibernate:3.6.10.4"

    //runtime ":jquery:1.7.2"
    runtime ":jquery:1.10.2"

    //runtime ':pvpi:0.1-SNAPSHOT'
    //runtime (':pvpi:0.1')
        //changing = true
    //

    //runtime ":resources:1.1.6"
    runtime ":resources:1.2.1"

    // Uncomment these (or add new ones) to enable additional resources capabilities
    //runtime ":zipped-resources:1.0"
    //runtime ":cached-resources:1.0"
    //runtime ":yui-minify-resources:0.1.4"

    build ":tomcat:7.0.47"
    //build ":tomcat:$grailsVersion"

    //runtime ":database-migration:1.1"
    runtime ":database-migration:1.3.8"

    //compile ':cache:1.0.0'
    compile ':cache:1.1.1'

    compile ":scaffolding:2.0.0"

    compile ":spring-security-core:2.0.0"

    

发送到控制台的日志显示构建尝试查找 spring-security-core 软件的所有在线位置 - 以下是所有这些位置的列表:

grailsCentral:http://grails.org/plugins/grails-spring-security-core/tags/RELEASE_3.1.1/spring-security-core-3.1.1.pom

mavenCentral:http://repo1.maven.org/maven2/org/grails/plugins/spring-security-core/3.1.1/spring-security-core-3.1.1.pom

http://mvnrepository.com/artifact/:http://mvnrepository.com/artifact/org/grails/plugins/spring-security-core/3.1.1/spring-security-core-3.1.1.pom

http://repo.spring.io/milestone/:http://repo.spring.io/milestone/org/grails/plugins/spring-security-core/3.1.1/spring-security-core-3.1.1.pom

http://grails.org/plugin:http://grails.org/plugin/grails-spring-security-core/tags/RELEASE_3.1.1/spring-security-core-3.1.1.pom

-麦克

【问题讨论】:

【参考方案1】:

如果你尝试一下会怎样

compile ":spring-security-core:2.0-RC5"

在您的 BuildConfig.groovy 插件部分中

【讨论】:

在插件部分我尝试了各种版本的spring-security-core插件,均未成功。也许我需要在 buildconfig 文件的“存储库”部分添加另一行?或者,我可以显式下载插件吗?如果可以,我不确定该怎么做?我可以看到文件 grails-spring-security-core-master.zip 可以从 github 站点下载,但我不知道如何使用它?此外,这个新版本的安全核心是否可以与 Grails 2.3.3 一起使用? 您是否按照文档中提到的配置步骤进行操作:grails-plugins.github.io/grails-spring-security-core/v3/…? 我刚刚在上面的初始问题中包含了完整的 Buildconfig.groovy 文件。我在 spring-security 中尝试链接的主要更改是在 repositories 块中添加 mavenRepo 'http://repo.spring.io/milestone'grailsRepo "http://grails.org/plugins" 行,将 compile "org.grails.plugins:spring-security-core:2.0.0" 添加到依赖项块中,将 compile ":spring-security-core:2.0.0" 添加到插件块中. 我刚刚看到了这个较早的 *** 问题:[link]***.com/questions/4344267/…,它清楚地解释了如何直接从 zip 文件安装插件。我可以从安全核心文档页面下载最新版本,当前版本是:3.0.4-1。这适用于 grails 2.3.3 吗?如果没有,我可以从哪里获得早期版本? 嗨!我尝试了一个新项目,我客人忘记选择依赖解析器,在我的情况下,我在 grails.project.dependency.resolution = 行之前有这一行 grails.project.dependency.resolver = "maven" // or ivy 并且当然不要忘记编译行 compile ":spring-security-core:2.0-RC5" 我只有那个在我的 BuildConfig.groovy 文件中,安全插件安装正常。【参考方案2】:

您可以访问上面的以下链接以获取此插件的最新版本。

https://repo.grails.org/grails/core/org/grails/plugins/spring-security-core/

现在,正确的命令是:

compile "org.grails.plugins:spring-security-core:3.1.1"

为我工作。

【讨论】:

以上是关于带有 grails 的 Spring Security 核心插件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 grails 1.3.2 和插件 spring-security-core 1 实现自定义 FilterSecurityInterceptor?

带有 grails 的 Spring Security 核心插件

在带有 CAS 和 LDAP 的 Grails 中使用 Spring Security

带有 Spring Security 的 Grails 4 审计日志不记录“演员”

带有 Spring Security Core 的 Grails 仅允许所有者在 GSP 中更新

带有 Spring Security 核心和 CORS 插件的 grails REST API 不适用于 OPTIONS http 方法请求