我尝试使用spring-security的事件处理来记录登录和注销,但没有任何反应。
我在Aplication.groovy中启用了事件处理:
grails.plugin.springsecurity.useSecurityEventListener = true
并在resources.groovy中注册了bean:
import grails.databinding.converters.ValueConverter
import com.torntrading.utils.DatabaseMessageSource
import org.springframework.web.servlet.i18n.SessionLocaleResolver
import com.myproj.AuthenticationSuccessEventListener
beans = {
authenticationSuccessEventListener(AuthenticationSuccessEventListener)
}
文件夹" Utility Classes"中的事件类:
package com.myproj
import org.springframework.context.ApplicationListener
import org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent
/**
*
* @author Lars
*/
class AuthenticationSuccessEventListener implements
ApplicationListener<InteractiveAuthenticationSuccessEvent> {
@Override
public void onApplicationEvent(InteractiveAuthenticationSuccessEvent event) {
println(springSecurityService.getPrincipal().username + "***** LOGGED IN ! ******" + new Date())
}
}
永远不会打印文本,因此我假设事件未被触发。 我的代码出了什么问题?
使用版本:spring-security-core:3.1.1&#39;