struts2拦截器

我用session保持一个登陆会话   
但现在我在同一台机子上使用同一账号不同的浏览器登陆   那么这两个浏览器都是可以登陆 的   
用不同的机器用同一种或者不同的浏览器也使用同一账号登陆  也是可以登陆成功   

问题是我怎么才能不让其重复登陆 返回结果说你已经登陆过
用拦截器
可以去做到吗 欢迎大家提出宝贵的建义

可以考虑使用HttpSessionListener、HttpSessionActivationListener监听对应的session时间,在结合使用分布式缓存(Memcached等)做一个队列存储对应用户的登陆标示。可参看Spring security对登陆用户session的管理对应的SessionManagementFilter实现。

可以考虑使用jig的 cas server做登录管理

其实就是简单的阻止用户重复登录的功能,不用那么复杂的高单点登录。简单的session监控就行。servlet不是有几个作用域嘛,在application的全局作用域里面建一个队列,用于存储登录过的用户ID,只要存进去的,再次登录时候都能查的到 ,提示不让登录就行了,也没必要去监控是什么客户端登录的。至于用户ID的管理问题,可以编写个移除策略,在用户最后一次请求已超过30分钟后,清除掉该用户ID就行了。
其实这样也蛮复杂 ,记得有个session 监听器,能够监听session的创建和销毁事件。在web.xml里面注册这个监听器就行,然后监听器里面做队列的管理,就不需要自己手动写移除策略。