我正在使用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实现会话并发限制?
答案 0 :(得分:0)
我不认为它会起作用,GAE是一个云解决方案,它通过在数据存储中存储会话,然后将它们传播到其他实例上,在多JVM上填充各种http会话,它将正常工作您的开发环境但是会让您失去实时服务器,所以我不能通过GAE允许单一会话解决方案具有弹簧安全性。