packagemy.authentication.normal;importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.annotation.WebFilter;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;/*** Servlet Filter implementation class authentication*/
//@WebFilter("/my.authentication.normal/*")
@WebFilter("/admin/*")public class AuthenticationFilter implementsFilter {//FilterConfig fConfig;
/*** Default constructor.*/
publicAuthenticationFilter() {//TODO Auto-generated constructor stub
}/***@seeFilter#destroy()*/
public voiddestroy() {//TODO Auto-generated method stub
}
@Override/***@seeFilter#doFilter(ServletRequest, ServletResponse, FilterChain)*/
public voiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {
HttpServletRequest httpSR=(HttpServletRequest) request;
HttpServletResponse httpRP=(HttpServletResponse) response;
String url=httpSR.getRequestURL().toString();
System.out.println("My URL:" +url);
HttpSession session=httpSR.getSession();
Cookie[] cks=httpSR.getCookies();/**判断客户端是否有remeberme的cookie,如果有,说明已经登录成功了*/
if (cks != null) {
Cookie ck= null;for(Cookie ckc:cks)
{
String ckName=ckc.getName();
System.out.println(ckName);if(ckName.equals("remeberme"))
{
System.out.println("过滤器获取到remeberme的cookie");
ck=ckc;break;
}
}if (ck != null) {
System.out.println("过滤器获取到remeberme的cookie");
session.setAttribute("user", session.getAttribute("user"));
chain.doFilter(request, response);return;
}
}if (session.getAttribute("user") != null) {
chain.doFilter(request, response);
}else{
httpRP.sendRedirect("/login.jsp");
}
}/***@seeFilter#init(FilterConfig)*/
public void init(FilterConfig fConfig) throwsServletException {//System.out.println("fConfig器");//this.fConfig=fConfig;
}
}