gpt4 book ai didi

grails - 用于Grails的Spring Security插件中的登录日期

转载 作者:行者123 更新时间:2023-12-02 14:22:44 24 4
gpt4 key购买 nike

我正在使用 Spring 安全插件,我想将用户的登录日期保存在数据库中,因此我在配置文件中写了以下内容:

grails.plugin.springsecurity.useSecurityEventListener = true 
grails.plugin.springsecurity.onAuthenticationSuccessEvent= { e, appCtx ->
com.app.utils.UserActivity.withTransaction {
def user = com.app.utils.UserActivity.findByUser(com.app.security.Users.get(appCtx.springSecurityService.principal.id))
if (!user)
{
new com.app.utils.UserActivity(user:user,userLoggedIn:new Date(),userLoggedOut: null).save(failOnError:true)

}

else
{
user.userLoggedIn= new Date()
user.userLoggedOut=null
user.save(failOnError:true)

}

}
}

问题是 appCtx.springSecurityService.principal.id总是返回 null,并且 logout操作有任何事件。

最佳答案

获取主体的正确方法是通过身份验证事件,如下所示:e.getAuthentication().getPrincipal()

关于grails - 用于Grails的Spring Security插件中的登录日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35443667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com