`

JSP登录前后改变JSESSIONID

 
阅读更多

 

配置web.xml的filter(需要配置在Struts2插件过滤器前)

 

 <filter>
 <filter-name>filter1</filter-name>
 <filter-class>filter.LoginFilter1</filter-class>
 </filter>
 <filter-mapping>
 <filter-name>filter1</filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>



 

增加Filter

 

package filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


public class LoginFilter1 implements Filter {//尝试改变JSESSIONID

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("LoginFilter1 destroy");
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		// TODO Auto-generated method stub
		HttpServletRequest httpRequest = (HttpServletRequest)arg0;  
		StringBuffer ul = httpRequest.getRequestURL();		
		
		if(ul.toString().contains("login!getintoindex.do")){
			HttpSession session = httpRequest.getSession(false);
			
			if ( session != null && !session.isNew() ) {//isNew() Returns true if the client does not yet know about the session or if the client chooses not to join the session.
				HttpSession sessionOld = session; 
				User user = (User)sessionOld.getAttribute("user");

				sessionOld.invalidate();
				
				session = httpRequest.getSession(true);
				session.setAttribute("user", user);

				System.out.println("LoginFilter1 doFilter,url: " + httpRequest.getRequestURL()+" , session id: " + httpRequest.getSession().getId());
			}			
		}
		
		if(ul.toString().contains("top!logout.do")){//
			HttpSession session = httpRequest.getSession(false);
			if ( session != null && !session.isNew() ) {
				HttpSession sessionOld = session; 
				sessionOld.invalidate();
				session = httpRequest.getSession(true);
				
				System.out.println("LoginFilter1 doFilter,logout. ");
			}
			
		}
		
			
		
		arg2.doFilter(arg0, arg1);
		
		
		
		
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("LoginFilter1 init");
	}

}



 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics