为什么Spring Security Core RC4需要Grails 2.3?

时间:2014-08-19 15:05:26

标签: grails spring-security grails-plugin

在Spring Security Core插件GitHub回购中,我看到Graeme于5月21日发布了Grails 2,{2} Grails从2.0到2.3之前的RC4版本在几个月之后发布,但我没有看到任何解释为什么它是不匹配的依赖项,错误报告等吗?

我运行了一个2.2.4应用程序,我不想在此时升级只是为了获得最新的弹簧安全核心RC。我理解upped the required version是否导致与旧版Grails的不匹配依赖,因为我之前遇到过相同的问题。

这最初是由于我维护的spring security OAuth2提供程序插件上的upgrade to 3.2.0.RELEASE of spring security。 pull请求将所需版本提升到2.3,请求者指出我将RC4版本的内核作为原因。

感谢您一如既往的好作品!

1 个答案:

答案 0 :(得分:1)

这是我的纯粹推测,但据我所知,它与Grails 2.3中getNamespace()界面中引入的UrlMappingInfo方法有关。

Spring Security Core插件的类AnnotationFilterInvocationDefinition确实在它尝试调用getNamespace()之前检查它是否处理Grails 2.3或更高版本,但在其当前状态下它会导致编译错误(由于缺少方法)

我认为该类可以使用反射API来解决这个问题,从而可以将需求降低到Grails 2.2.0(或保持在2.0.0)

String namespace = null;
try {          
    Method m = mapping.getClass().getDeclaredMethod("getNamespace", null);
    namespace = (String)m.invoke();
} catch(NoSuchMethodException e) { ... }