我在将userDetailsService注入我的自定义提供程序时遇到了问题。我有一个自定义的userDetailsService,我试图将它注入到我的提供者中,然而,由于我的提供者的某些原因,这在一个空的userDetailsService中得到了解决。以下内容来自我的resources.groovy:
beans = {
userDetailsService(CustomUserDetailsService) {
}
stupidAuthenticationProvider(StupidAuthenticationProvider) {
userDetailsService = ref("userDetailsService")
}
}基本上,我只是在提供程序中定义它,如下所示:
public class StupidAuthenticationProvider implements AuthenticationProvider {
def userDetailsService我遗漏了什么?
发布于 2013-02-26 20:41:14
尝试使用类的限定名称:
beans = {
userDetailsService(com.test.CustomUserDetailsService){
}
StupidAuthenticationProvider(com.test.XXX.StupidAuthenticationProvider) {
userDetailsService = ref('userDetailsService ')
}
}发布于 2013-02-26 20:56:17
你的CustomUserDetailsService是在一个包里吗?如果是,那么你应该在配置中给出它的完全限定名。
以下内容对我很有效:
beans = {
userDetailsService(com.mysite.MyUserDetailsService)
//and then refer it like...
emailAuthenticationProvider(com.mysite.EmailAuthenticationProvider) {
springSecurityService = ref('springSecurityService')
userDetailsService = ref('userDetailsService')
}
}在身份验证提供程序中...
class EmailAuthenticationProvider implements AuthenticationProvider {
def userDetailsService
def springSecurityService
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
//...
}
}https://stackoverflow.com/questions/15088882
复制相似问题