Events Grails,无法使spring安全事件通知工作
我尝试使用SpringSecurity的事件处理来记录登录和注销,但什么也没发生 我在Aplication.groovy中启用了事件处理:Events Grails,无法使spring安全事件通知工作,events,grails,spring-security,Events,Grails,Spring Security,我尝试使用SpringSecurity的事件处理来记录登录和注销,但什么也没发生 我在Aplication.groovy中启用了事件处理: grails.plugin.springsecurity.useSecurityEventListener = true 并在resources.groovy中注册了bean: import grails.databinding.converters.ValueConverter import com.torntrading.utils.DatabaseM
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)
}
以及文件夹“实用程序类”中的事件类:
package com.myproj
导入org.springframework.context.ApplicationListener
导入org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent
/**
*
*@作者拉尔斯
*/
类AuthenticationSuccessEventListener实现
应用程序侦听器{
@凌驾
ApplicationEvent上的公共无效(InteractiveAuthenticationSuccessEvent事件){
println(springSecurityService.getPrincipal().username+“*******已登录!*******”+新日期())
}
}
文本从未打印,因此我假设事件未触发。
我的代码怎么了
使用version:spring security core:3.1.1'Grails的哪个版本,如果是<3,那么设置
Grails.plugin.springsecurity.useSecurityEventListener=true
应该在Config.groovy中。groovy | Grails version:3.2.4.4 | groovy version:2.4.7 | JVM version:1.8.0 |尝试添加到application.yml中3+,我不知道该如何放置它。我用grails:plugin:springsecurity:UseSecurityEventListener:true进行了一次尝试,但没有成功。您是否将其添加到\init\yourApp\Application.groovy
或\grails-app\conf\Application.groovy
?
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())
}
}