1、web.xml
<filter>
<filter-name>simpleLoginFilter</filter-name>
<filter-class>com.auth.service.MySimpleLoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>simpleLoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2、添加過濾器
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 com.auth.domain.model.User;
import com.common.constant.SystemInfo;
public class MySimpleLoginFilter implements Filter {
/*
* (non Javadoc)
*
* @Title: destroy
*
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
}
/*
* (non Javadoc)
*
* @Title: doFilter
*
* @param arg0
*
* @param arg1
*
* @param arg2
*
* @throws IOException
*
* @throws ServletException
*
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
* javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
// 由於web.xml中設置Filter過濾全部請求,可以排除不需要過濾的url
String requestURI = req.getRequestURI();
if (requestURI.endsWith("index.jsp")
|| requestURI.endsWith("login.jsp")
|| requestURI.endsWith("login.gb")
|| requestURI.endsWith("loginWithToken.gb")
|| requestURI.endsWith(".png")
|| requestURI.endsWith(".js")
|| requestURI.endsWith(".css")
|| requestURI.endsWith(".json")
|| requestURI.contains("/services/")
|| requestURI.contains("/rest/")
|| requestURI.contains("/common/")) {
chain.doFilter(request, response);
return;
}
// 判斷用戶是否登錄,進行頁面的處理
if (requestURI.endsWith("loginFail.gb")) {
((HttpServletResponse) response).sendRedirect("index.jsp?error="
+ request.getParameter("error"));
return;
} else if (requestURI.equals("/scms/") || null == session.getAttribute(SystemInfo.SESSION_USER)
|| ((User) session.getAttribute(SystemInfo.SESSION_USER))
.getId() == null) {
// 未登錄用戶,重定向到登錄頁面
((HttpServletResponse) response).sendRedirect("/scms/index.jsp");
return;
} else {
// if (requestURI.equals("/scms/")) {
// ((HttpServletResponse) response)
// .sendRedirect("businessIndex.gb");
// return;
// }
// 已登錄用戶,允許訪問
chain.doFilter(request, response);
}
}
/*
* (non Javadoc)
*
* @Title: init
*
* @param arg0
*
* @throws ServletException
*
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig arg0) throws ServletException {
}
}