我正在使用Spring Security实现我的GAE + GWT应用程序的身份验证层。我的问题是关于一个给定用户配置文件的并发会话。我想禁止任何用户登录两次与同一帐户,在同一时间。
经过一些研究,我发现我可以在Spring Security中使用:
web.xml
<listener>
<listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class>
</listener>
在applicationContext.xml中
<session-management>
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</session-management>
每当在HttpSessionListener中调用sessionDestroyed()时,HttpSessionEventPublisher都会收到一个事件。但是,据我所知,App Engine从不调用它。有一个issue about this
如何使用Spring Security和App Engine实现会话并发限制?
发布于 2012-07-16 11:54:47
我不认为它会工作,GAE是一个云解决方案,它通过将会话存储在数据存储中来填充多个JVM上的各种http会话,然后将它们传播到其他实例上,它在您的开发环境中会工作得很好,但会让您在实时服务器上失败,所以我不认为有可能在GAE上使用spring安全性的单一会话解决方案。
https://stackoverflow.com/questions/9804310
复制