我工作的聖盃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