App Engine& Spring Security:并发会话

时间:2012-03-21 12:07:57

标签: spring google-app-engine session spring-security

我正在使用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实现会话并发限制?

1 个答案:

答案 0 :(得分:0)

我不认为它会起作用,GAE是一个云解决方案,它通过在数据存储中存储会话,然后将它们传播到其他实例上,在多JVM上填充各种http会话,它将正常工作您的开发环境但是会让您失去实时服务器,所以我不能通过GAE允许单一会话解决方案具有弹簧安全性。