我使用的是SSH2框架,做安全测试需要限制:1.单个用户的多重并发会话限制 2. 限制单客户端同时登录多个用户 。这两个内容,没有采用在web.xml中配置过滤器的方式,我处理的方式是如果一个用户在第二台电脑上登录了就踢掉上一台电脑登录的用户,如果同一个台电脑有第二个用户登录 ,就踢掉之前登录的帐号。
所以,是在登录的方法中做的处理。
在登录方法中加入如下两行语句,作为程序的入口:
SessionListener.isAlreadyEnter(getHttpRequest().getSession(),this.getUserCode(),loginUser);
getHttpRequest().getSession().setAttribute("isLoginIn", "LoginIn");
在SessionListener类中做相关的踢出处理:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpS