Grails 防止登录时重复提交表单

Grails 防止登录时重复提交表单,grails,spring-security,Grails,Spring Security,我有一个问题,导致,几乎可以肯定,现在似乎这是由于重复的表单提交登录。这一切都是使用Spring安全插件完成的。有没有办法防止这种情况 我曾想过使用useToken/withForm,但看不出Spring Security如何发布给j_Spring_Security_check,所以我无法控制它 我正在使用自定义UserDetails服务,可以查看如何检查是否有当前会话正在登录,例如通过RequestContextHolder.requestAttributes.sessionMutex.ses

我有一个问题,导致,几乎可以肯定,现在似乎这是由于重复的表单提交登录。这一切都是使用Spring安全插件完成的。有没有办法防止这种情况

我曾想过使用useToken/withForm,但看不出Spring Security如何发布给j_Spring_Security_check,所以我无法控制它

我正在使用自定义UserDetails服务,可以查看如何检查是否有当前会话正在登录,例如通过RequestContextHolder.requestAttributes.sessionMutex.session.attributes.xyz登录,但也不确定这种方式是否正确

使用Grails 2.0.4

“Grails内置了使用“同步器令牌模式”处理重复表单提交的支持


您可以在中阅读:

如何跟踪用户的核心问题。在custom UserDetails服务中调用save()(例如更新上次登录时间),在每个用户的后续调用中关闭Hibernate会话


已将User.save()移动到ApplicationEvent(AuthenticationSuccessEvent事件)上的AuthenticationEventListener.onApplicationEvent,并且工作正常。知道如何处理到j_spring_security_check的重复帖子还是不错的

谢谢,但很抱歉我没有说清楚这是在使用spring security插件,它最终发布到j_spring_security_check中,所以我无法控制我可以在表单中使用它…我现在还看不到。当你使用spring security插件时,它会生成标准视图和控制器。您可以使用上述信息编辑views/login/auth.gsp和controller/../LoginController.groovy。问题是表单发布到j_spring\u security\u check,所以您没有控制器可以使用,我想有办法解决这个问题,但目前我的自我回答解决方案似乎还不错