Session 单击“注销”时,如何从所有活动会话注销?

Session 单击“注销”时,如何从所有活动会话注销?,session,grails,groovy,spring-security,logout,Session,Grails,Groovy,Spring Security,Logout,我想在单击注销按钮时从所有活动会话注销。我的项目是由Groovy在Grails 2.3.8上开发的,同时也使用spring security 1.2.7如果所有的JSESSIONID的CookeI在所有浏览器/选项卡/设备上都是不同的(我90%相信它们是不同的),那么就没有现成的方法来删除它们的http会话 尽管建立这样一个机制不是什么大事。您可以使用单例缓存,如ConcurrentHashMap,由会话id设置密钥,并使用用户id进行赋值 您可以通过HttpSessionListener填写单

我想在单击注销按钮时从所有活动会话注销。我的项目是由Groovy在Grails 2.3.8上开发的,同时也使用spring security 1.2.7

如果所有的
JSESSIONID
的CookeI在所有浏览器/选项卡/设备上都是不同的(我90%相信它们是不同的),那么就没有现成的方法来删除它们的http会话

尽管建立这样一个机制不是什么大事。您可以使用单例缓存,如
ConcurrentHashMap
,由会话id设置密钥,并使用用户id进行赋值

您可以通过
HttpSessionListener
填写单例,如或

现在,如果您想删除所有用户会话,您必须遍历映射,找到用户id的所有条目,并将其值设置为例如
null


另一个难题是过滤器或拦截器之前的
。它应该检查缓存,如果条目具有
null
而不是用户id,则执行注销。

您所说的“所有活动会话”是什么意思?我的意思是,用户可以登录多个浏览器/设备,实际上我的意思是。。