如何修复“无效的记住我令牌(系列/令牌)不匹配”错误?

Posted

技术标签:

【中文标题】如何修复“无效的记住我令牌(系列/令牌)不匹配”错误?【英文标题】:How to fix "Invalid remember-me token (Series/token) mismatch" Error? 【发布时间】:2013-06-29 19:15:10 【问题描述】:

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

| 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'

如何解决此错误?什么意思?

【问题讨论】:

rememberMe 现在有哪些配置? @dmahapatro 我更新了我的配置。 我认为你是这个尚未解决的bug 的受害者。我猜托比霍布森最后提出了一个解决方法。 不,这是一个不同的问题。我使用持久登录而不是 openID。 我知道你会带着这份声明回来。阅读错误中的每一条评论。它影响核心插件。 “我也确认该错误也仅影响核心插件”-查找此行。 【参考方案1】:

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

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

因此,您没有很多选项可以解决此问题,一个选项是没有并行请求,但在 toady 的移动应用程序中这是不可能的。

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

【讨论】:

以上是关于如何修复“无效的记住我令牌(系列/令牌)不匹配”错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复由 Caused by: java.lang.NumberFormatException: For input string: "pets" 引起的 Asynctask 错

如何解决windows10系统中安装vs2013报错问题

CentOS启动时报错修复

linux系统redhead启动时报错,之前曾经误删磁盘分区,该怎样修复?

[nginx] nginx报错修复

如何修复“枚举约束失败”?