我工作的圣杯OAuth的插件的更新版本,支持去年春天,OAuth的无豆命名,但豆定义
我的插件版本的作品很好,我实现了一个干活的oauth2服务器。
但现在我想补充这样
def doWithSpring = {
myTokenGranter(MyTokenGranter)
xmlns oauth:"http://www.springframework.org/schema/security/oauth2"
oauth.'authorization-server'(/* ... many definitions here ... */){
/* ... many definitions here ... */
oauth.'custom-grant'('token-granter-ref': "myTokenGranter")
}
}
定义一个定制的补助,但我得到一个异常告诉我:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'myTokenGranter'
但豆myTokenGranter定义,你可以看到。如果我删除了自定义授权定义项目启动,我可以访问myTokenGranter bean。
寻找到fullstack跟踪我看到它试图找到我的豆例外发生在spring oatuh2 server bean definition parse AuthorizationServerBeanDefinitionParser.java在该行
parserContext.getRegistry().getBeanDefinition(customGranterRef);
其中customGranterRef =“myTokenGranter”
所以我怀疑有Spring Ouath或Grails BeanBuilder中的一个错误,它不会让我的“myTokenGranter”在服务器解析器中可见。或者在grails bean定义DSL中发生一些错误。
谢谢您的关注。
更深入地调试应用程序我发现问题可能在于BeanBuilder如何在翻译命名空间的DSL中工作。
如果我调试
在行
parserContext.getRegistry().getBeanDefinition(customGranterRef);
在我的豆被选中(在AuthorizationServerBeanDefinitionParser.java)的点,如果我检查的
parserContext.getRegistry().getBeanDefinitionNames()
澈结果拿给我只有这豆
[org.springframework.context.annotation.internalConfigurationAnnotationProcessor
org.springframework.context.annotation.internalAutowiredAnnotationProcessor
org.springframework.context.annotation.internalRequiredAnnotationProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
org.springframework.context.annotation.internalPersistenceAnnotationProcessor
org.springframework.aop.config.internalAutoProxyCreator
org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0
org.springframework.transaction.interceptor.TransactionInterceptor#0
org.springframework.transaction.config.internalTransactionAdvisor
oauth2TokenGranter
oauth2AuthorizationCodeServices
oauth2AuthorizationRequestManager]
即使我移动ouath服务器声明中resources.xml中,保持内部resources.groovy我的自定义令牌授予者Bean声明
而且也不是所有其他decleared豆...
的问题存在。
但是,如果我在resources.xml中移动自定义令牌bean声明,问题就解决了。
没有ü尝试在弹簧安全的OAuth论坛张贴? – OhadR 2013-03-15 20:26:42
@OhadR不,我会试试。谢谢。 – 2013-03-18 08:42:08