【发布时间】:2013-02-11 21:21:46
【问题描述】:
我在将 userDetailsService 注入自定义提供程序时遇到问题。我有一个自定义的 userDetailsService,我正试图将它注入我的提供者,但是,由于我的提供者的某种原因,这在 null userDetailsService 中解析。 以下来自我的resources.groovy:
beans = {
userDetailsService(CustomUserDetailsService) {
}
stupidAuthenticationProvider(StupidAuthenticationProvider) {
userDetailsService = ref("userDetailsService")
}
}
基本上我只是在我的提供程序中将其定义如下:
public class StupidAuthenticationProvider implements AuthenticationProvider {
def userDetailsService
我错过了什么?
【问题讨论】:
-
查看Spring Security Core 定义的bean,这似乎是正确的名称。你确定你声明了
userDetailsService?在您的引导程序中,如果您打印grailsApplication.mainContext.getBean('userDetailsService')实例是CustomUserDetailsService? -
是:com.test.CustomUserDetailsService@6180ef93
-
你是如何使用愚蠢的AuthenticationProvider的?
-
基本上我刚刚将提供程序添加到 springsecurity.providerNames... grails.plugins.springsecurity.providerNames = ['stupidAuthenticationProvider'] 这一切顺利,当我尝试登录时触发此提供程序.一旦进入愚蠢的AuthenticationProvider,我将userDetailsService定义为:def userDetailsService,但这被解析为null,只是println userDetailsService或尝试调用某些方法解析为null
-
问题只是userDetailsService似乎没有正确注入