spring - 如何修复 "Invalid remember-me token (Series/token) mismatch"错误?

标签 spring grails spring-security grails-2.0 remember-me

我使用 Spring Security 持久登录。我将记住我的 token 保存在我的数据库中。有时我会收到以下错误:

| Error 2013-07-02 13:54:14,859 [http-nio-8080-exec-2] ERROR [/buddyis].[gsp]  -  
Servlet.service() for servlet [gsp] in context with path [/buddyis] threw exception
Message: Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack.
Line | Method
->> 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    722 | run . . . in java.lang.Thread 

在我的 Config.groovy 中:

grails.plugins.springsecurity.logout.handlerNames = [
'rememberMeServices', 'securityContextLogoutHandler', 'mySecurityEventListener'
]
grails.plugins.springsecurity.rememberMe.cookieName = 'RememberMe'
grails.plugins.springsecurity.rememberMe.alwaysRemember = true
grails.plugins.springsecurity.rememberMe.tokenValiditySeconds = 31536000 // 365 days
grails.plugins.springsecurity.rememberMe.key = 'rememberMe'
grails.plugins.springsecurity.rememberMe.persistent = true
grails.plugins.springsecurity.rememberMe.persistentToken.domainClassName = 'mypackage.PersistentLogin'

如何修复此错误?什么意思?

最佳答案

我的移动网站出现了同样的异常。 当使用 remember me 登录的用户的 http session 过期时,当用户再次访问该网站时,如果有多个并行 (ajax) 请求,则会出现此问题。

发生这种情况是因为第一个并行请求将刷新记住我的 token ,而 token (已失效)所有其他请求将与持久 token 不匹配。

所以你没有太多的选择来解决这个问题,一个选择是没有并行请求,但在今天的移动应用程序中这是不太可能的。

我所做的是发出/me 请求,这是我在启动/加载网络应用程序时所做的第一件事,之后我可以执行多个并行请求,而不必担心我会遇到这个问题。

关于spring - 如何修复 "Invalid remember-me token (Series/token) mismatch"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17425275/

相关文章:

spring-security - Spring OAuth2范围vs授权(角色)

validation - Spring验证器默认消息代码无法解析

grails - 如何从 Web 应用程序中过滤 Groovy/Grails 闭包

grails - 是什么导致 gsp 的 html 头中的脚本 block 被覆盖

grails - 在GSP中导入和使用Groovy代码

java - 使用 JWT 的 Spring Data Rest

java - 在 MySQL 中处理 null

java - 尽管使用 OSIV,Spring 事务划分仍会导致新的 Hibernate session

java - Bean 在 Spring 4.2.5 的 ContextRefreshedEvent 上没有事务代理

java - 如何测试Spring Security是否真正启用?