Я работаю на обновление версии Грааля-OAuth-плагин, который поддерживает прошлой весной-OAuthНет боб не назван, но боб определяется
Моя версия плагина работает хорошо, и я реализовал сервер Workin 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 определяется, как вы можете видеть. И если я удалю определение пользовательского гранта, проект начнется, и я могу получить доступ к bean-файлу myTokenGranter.
Глядя на fullstack след я вижу, что исключение происходит в spring oatuh2 server bean definition parse AuthorizationServerBeanDefinitionParser.java в строке, где пытается найти мои компоненты-
parserContext.getRegistry().getBeanDefinition(customGranterRef);
где customGranterRef = «myTokenGranter»
, так что я подозреваю, что есть ошибка в Spring Ouath или в Grails BeanBuilder, которая не позволяет моему «myTokenGranter» быть видимым в парсере сервера. Или сделать некоторую ошибку в определении зерновых зерен DSL.
Благодарим Вас за интерес.
Отладка приложения более глубоко Я обнаружил, что проблема, вероятно, связана с тем, как грабли BeanBuilder работают при переводе родного DSL-источника.
Если я отладки точки, где проверяется мой боб (в AuthorizationServerBeanDefinitionParser.java)
в строке
parserContext.getRegistry().getBeanDefinition(customGranterRef);
, если я проверю че результат
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]
И не все другие decleared бобы ...
проблема существует, даже если я перехожу объявление ouath сервера внутри resources.xml, сохраняя мой пользовательский маркер декларации даритель боб внутри resources.groovy.
Но проблема решается, если я перемещаю пользовательскую декларацию bean-токена в resources.xml.
сделал и стараться размещать в весенне-безопасности OAuth форуме? – OhadR
@ OhadR нет, я попробую. Спасибо. –