带有 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 方法请求