web.xml中
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>authFilter</filter-name>
<filter-class>com.richsum.xnoa.web.AuthFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>authFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
类中
package com.richsum.xnoa.web;
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;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.richsum.xnoa.common.SystemConstants;
/**
* @author Leo
*/
public class AuthFilter implements Filter {
private static final Log LOG = LogFactory.getLog(AuthFilter.class);
@Override
public void init(FilterConfig arg0) throws ServletException {
}
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain chain)
throws IOException, ServletException {
LOG.debug("Enter Auth Filter...");
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpSession session = request.getSession();
String uri = request.getRequestURI();
String context = request.getContextPath();
uri = uri.replace(context, "");
// String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+context+"/";
Object user = session.getAttribute(SystemConstants.SESN_KEY_LOGIN_EMPLOYEE);
/*if (user != null || uri.equalsIgnoreCase("/index.action") || uri.equalsIgnoreCase("/checkPIN.action") || uri.equalsIgnoreCase("/loginByUK.action") || uri.equalsIgnoreCase("/softDownload.action") || uri.startsWith("/config-browser") ) { /mast/code/judCode.action
chain.doFilter(servletRequest, servletResponse);
} else {
response.sendRedirect(context);
}*/
if (uri.endsWith("login.jsp") || uri.endsWith("LoginSwitch.jsp") || uri.endsWith("AndroidLogin.jsp") ||user != null || uri.equalsIgnoreCase("/index.action") || uri.equalsIgnoreCase("/checkPIN.action") || uri.equalsIgnoreCase("/loginByUK.action") || uri.equalsIgnoreCase("/softDownload.action") || uri.startsWith("/config-browser") || uri.equalsIgnoreCase("/mast/code/getCode.action") || uri.equalsIgnoreCase("/mast/code/judCode.action")) {
chain.doFilter(servletRequest, servletResponse);
} else {
if(uri.endsWith(".jsp")||uri.endsWith(".action")){
LOG.debug("doFilter请求被拦截,跳转到:" + context);
//判断是否通过微信请求来的
String clientType = request.getParameter("clientType") == null ? ""
: request.getParameter("clientType").toString();
if (clientType != null&& clientType.equals("Android")) {
response.sendRedirect(request.getContextPath() +"/AndroidLogin.jsp");
}else {
response.sendRedirect(request.getContextPath() +"/LoginSwitch.jsp");
}
return;
}else{
chain.doFilter(servletRequest, servletResponse);
}
}
}
@Override
public void destroy() {
try {
} catch (Exception ex) {
LOG.debug(ex.getMessage());
}
}
}