grails spring security 自定义 userDetailsS​​ervice

标签 grails spring-security

我在将 userDetailsS​​ervice 注入(inject)自定义提供程序时遇到问题。我有一个自定义的 userDetailsS​​ervice,我试图将其注入(inject)到我的提供程序中,但是,由于某些原因,我的提供程序会解析为空 userDetailsS​​ervice。 以下内容来 self 的 resources.groovy:

beans = {
  userDetailsService(CustomUserDetailsService) {
  }

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

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

public class StupidAuthenticationProvider implements AuthenticationProvider {
def userDetailsService

我错过了什么?

最佳答案

您的 CustomUserDetailsS​​ervice 是否在包中?如果是,那么您应该在配置中给出它的完全限定名称。

以下对我有用:

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 {
        //...
    }
}

关于grails spring security 自定义 userDetailsS​​ervice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15088882/

相关文章:

grails - 如何从grails中的数组查询数据

grails - grails 3.2.7/gradle-任务 ':compileGsonViews'的执行失败。文件名或扩展名太长

grails - 告诉我有没有脏东西?

java - 创建名为 'org.springframework.scheduling.annotation.proxyasyncconfiguration' 的 bean 时出错

grails - 用于引导的Grails taglib

grails - Grails中非法常量池索引错误

java - 如何保护注册页面免受多次恶意请求?

spring-security - oauth2Login 和 oauth2Client 之间有什么区别?它们的用例是什么?

security - 为什么身份验证应该在过滤器中而不是在 Controller 中实现?

java - 使用 Spring Mvc 测试测试 Spring Security Controller