【问题标题】:Spring security plugin not throwing eventsSpring安全插件不抛出事件
【发布时间】:2010-06-28 06:28:02
【问题描述】:

我正在从 acegi 插件迁移到 Spring Security 插件。目前正在使用 grails 环境。我面临一个奇怪的问题,因为我的身份验证成功事件和身份验证错误凭据事件根本没有抛出。我在 config.groovy 的回调中以及通过侦听器添加了 println 语句。但是我可以捕获诸如 InteractiveAuthenticationSuccessEvent 之类的事件。遇到同样问题的请回复

【问题讨论】:

    标签: security events grails plugins registering


    【解决方案1】:

    user guide 第 5 章所述,您需要使用“useSecurityEventListener”启用事件并配置一个或多个回调闭包,例如:

    grails.plugins.springsecurity.useSecurityEventListener = true
    
    grails.plugins.springsecurity.onInteractiveAuthenticationSuccessEvent = { e, appCtx ->
       println "onInteractiveAuthenticationSuccessEvent: $e"
    }
    
    grails.plugins.springsecurity.onAbstractAuthenticationFailureEvent = { e, appCtx ->
       println "onAbstractAuthenticationFailureEvent: $e"
    }
    
    grails.plugins.springsecurity.onAuthenticationSuccessEvent = { e, appCtx ->
       println "onAuthenticationSuccessEvent: $e"
    }
    
    grails.plugins.springsecurity.onAuthenticationSwitchUserEvent = { e, appCtx ->
       println "onAuthenticationSwitchUserEvent: $e"
    }
    

    【讨论】:

    • 嘿,我尝试了所有这些,但问题是这些事件根本没有被调用。我只能收到 onInteractiveAuthenticationSuccessEvent 。我浏览了spring源代码,在AbstractAuthenticationProcessingFilter类中,他们只是在成功认证时抛出onInteractiveAuthenticationSuccessEvent,在认证失败时他们只是调用失败处理程序。我需要添加处理程序而不是监听事件吗?还是我需要注入提供者经理?我没有添加任何供应商经理认为 grails 插件会为我做这件事:(
    • 嗯,Spring Security 2 和 3 之间的情况似乎发生了变化。请在 Grails-Spring-Security-Core 组件下的 jira.codehaus.org/browse/GRAILSPLUGINS 创建一个问题,我会看看我能为下一个版本。
    • 嘿,感谢您的跟进。正如您所说,我们记录了一个错误jira.codehaus.org/browse/GRAILSPLUGINS-2248
    • 我已经发布了 0.4.1 版本的插件,包含这个修复。
    【解决方案2】:

    提供者管理器默认使用 Null 事件发布者。我们可以在 resources.groovy 中注入默认的认证事件发布者。

    defaultEventPublisher(DefaultAuthenticationEventPublisher) /** authenticationManager */ authenticationManager(ProviderManager) { authenticationEventPublisher = ref('defaultEventPublisher') providers = listOfProviders }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 2015-02-20
      • 2014-06-30
      • 2015-05-30
      • 2015-05-31
      • 2015-09-01
      • 2014-04-10
      相关资源
      最近更新 更多