日期:2014-05-17  浏览次数:20647 次

ssh2框架 重复登录
目前做义工ssh2的项目,要实现同一id号不同地点登录时,后登录者踢掉前登录者,听说用spring security可以实现,不过照着网上试了一下都没有效果,请问谁实现过类似的功能吗,麻烦指点一下,十分感谢!

------解决方案--------------------
你说的单点登录
不需要spring
只需要javax.servlet.http.HttpSession和javax.servlet.ServletContext
这两个接口足矣搞定,片段代码:
用户登录时写入:
HttpSession session = request.getSession();
ServletContext application = session.getServletContext();
application.setAttribute(user.getLoginName(), session.getId());// 单点登录

其他地方验证登录时写入:
String sessionId = (String) application.getAttribute(user.getLoginName());
if (null == sessionId 
------解决方案--------------------
 !sessionId.equals(session.getId())) {
response.sendRedirect("登录页面");// 后登录者踢掉前登录者
return;
}