首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >grails spring安全定制userDetailsService

grails spring安全定制userDetailsService
EN

Stack Overflow用户
提问于 2013-02-26 20:14:21
回答 2查看 1.3K关注 0票数 2

我在将userDetailsService注入我的自定义提供程序时遇到了问题。我有一个自定义的userDetailsService,我试图将它注入到我的提供者中,然而,由于我的提供者的某些原因,这在一个空的userDetailsService中得到了解决。以下内容来自我的resources.groovy:

代码语言:javascript
复制
beans = {
  userDetailsService(CustomUserDetailsService) {
  }

  stupidAuthenticationProvider(StupidAuthenticationProvider) {
    userDetailsService = ref("userDetailsService")
  }
}

基本上,我只是在提供程序中定义它,如下所示:

代码语言:javascript
复制
public class StupidAuthenticationProvider implements AuthenticationProvider {
def userDetailsService

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-26 20:41:14

尝试使用类的限定名称:

代码语言:javascript
复制
    beans = {
        userDetailsService(com.test.CustomUserDetailsService){
        }

        StupidAuthenticationProvider(com.test.XXX.StupidAuthenticationProvider) {
            userDetailsService = ref('userDetailsService ')
        }
    }
票数 1
EN

Stack Overflow用户

发布于 2013-02-26 20:56:17

你的CustomUserDetailsService是在一个包里吗?如果是,那么你应该在配置中给出它的完全限定名。

以下内容对我很有效:

代码语言:javascript
复制
beans = {
    userDetailsService(com.mysite.MyUserDetailsService)
//and then refer it like...
    emailAuthenticationProvider(com.mysite.EmailAuthenticationProvider) {
        springSecurityService = ref('springSecurityService')
        userDetailsService = ref('userDetailsService')
    }
}

在身份验证提供程序中...

代码语言:javascript
复制
class EmailAuthenticationProvider implements AuthenticationProvider {

    def userDetailsService
    def springSecurityService

    @Override
    public Authentication authenticate(Authentication authentication) throws AuthenticationException {
        //...
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15088882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档