grails 2.4.0.M1 中的 spring 安全插件出错
Posted
技术标签:
【中文标题】grails 2.4.0.M1 中的 spring 安全插件出错【英文标题】:Error with spring security plugin in grails 2.4.0.M1 【发布时间】:2014-04-10 02:44:03 【问题描述】:我遇到了编译问题,使用 grails 2.4.0.M1 和 spring-security-core:2.0-RC2
这是错误:
..../target/work/plugins/spring-security-core-2.0-RC2/src/groovy/grails/plugin/springsecurity/ReflectionUtils.groovy: 205:在静态范围内发现了明显的变量“org”,但没有 引用局部变量、静态字段或类。可能的原因: 您试图在绑定或实例中引用变量 静态上下文中的变量。你拼错了一个类名或 静态导入的字段。请检查拼写。你尝试过 使用方法 'org' 但在不允许的地方省略括号 语法。 @ 第 205 行,第 18 列。 应用程序 = org.codehaus.groovy.grails.commons.ApplicationHolder.application ^
问题似乎出在这个方法上
private static GrailsApplication getApplication()
if (!application)
application = org.codehaus.groovy.grails.commons.ApplicationHolder.application
application
关于 ReflectionUtils.groovy 类,
有没有其他人遇到过这样的事情?如果有,你是怎么解决的?
【问题讨论】:
【参考方案1】:我今天解决了这个问题 - https://github.com/grails-plugins/grails-spring-security-core/commit/ef3aab05bfb0eb2f2cbb2c5945f4fc9ca2f0697d
您可以将@Bubuntux 显示的更改作为临时解决方法,我将在几周后发布 2.0 final 并修复此问题。希望您不打算在生产中使用 Grails M1 版本,因此延迟应该不是太大的问题。
【讨论】:
谢谢你!我实际上在 git repo 上查找了该文件,希望能够提交一个包含更改的拉取请求,不幸的是它已经存在 :( 无论如何期待发布 2.0 顺便说一句,我也遇到了静态规则 (NPE) 的问题 在jira.grails.org/browse/GPSPRINGSECURITYCORE 上创建一个问题,使用一个演示问题的小型测试应用程序 - 运行grails bug-report
并附加该压缩包
使用 spring-security-core-2.0-RC3 摆脱了错误。谢谢。【参考方案2】:
似乎 ApplicationHolder 类很久以前就被弃用了,现在在 grals 2.4 上被删除了
所以我只是换行
application = org.codehaus.groovy.grails.commons.ApplicationHolder.application
到
application = Holders.grailsApplication
【讨论】:
哈哈。弃用的实际含义。不像Java中的Date.parse
。 ;)以上是关于grails 2.4.0.M1 中的 spring 安全插件出错的主要内容,如果未能解决你的问题,请参考以下文章
Grails 2.4.4 中的 Spring Security 插件问题
Grails 中的 Spring Security 提供授权
如何使 Grails Spring Security 2.0 中的登录/页面成为初始屏幕?
Grails:乐观锁定,StaleObjectStateException 与 Spring Security 会话中的域,更新计数器