在我使用的Config.groovy
中:
grails.plugins.springsecurity.useSecurityEventListener = true
grails.plugins.springsecurity.onInteractiveAuthenticationSuccessEvent = { e, appCtx ->
User.withTransaction {
def user = User.findById(appCtx.springSecurityService.principal.id)
if(!user.isAttached())
user.attach()
user.lastLoginDate = new Date()
user.save(flush: true, failOnError: true)
}
}
我的用户域有此字段,登录时不会出现任何错误,但该字段未更新。
我在org.hibernate
尝试了debugging everything,但我找不到任何update
或其他相关陈述。
我还需要在任何地方添加其他内容才能使其正常工作吗?
记录:
答案 0 :(得分:5)
好的,答案很简单。我忘了包名,所以找不到User
。
如果您的User
对象位于包org.test
中
org.test.User.withTransaction {
def user = org.test.User.get(appCtx.springSecurityService.principal.id)
user.lastLoginDate = new Date()
user.save(failOnError: true)
}
答案 1 :(得分:0)
使用Spring安全核心的版本是什么?看看this question以及春季安全作者给出的相关答案....可能你需要升级spring security版本吗?
:: UPDATE ::
This post和你的问题一样,希望你能通过调查得到解决方案......