81,092
社区成员
发帖
与我相关
我的任务
分享
<filter>
<filter-name>UrlFilter</filter-name>
<filter-class>jerehnet.filters.AuthorizationFilter</filter-class>
<init-param>
<param-name>loginPage</param-name>
<param-value>/login.jsp</param-value>
</init-param>
<!-- 例外情况 -->
<init-param>
<param-name>noUrlPage</param-name>
<param-value>/login.jsp</param-value>
</init-param>
</filter>
package jerehnet.filters;
import java.io.IOException;
import java.util.HashMap;
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 AuthorizationFilter implements Filter {
private String loginPage;
private String[] noUrlPage;
public void init(FilterConfig filterConfig) throws ServletException
{
loginPage = filterConfig.getInitParameter("loginPage");
noUrlPage = filterConfig.getInitParameter("noUrlPage").split(",");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession session = req.getSession();
HashMap adminUser = (HashMap) session.getAttribute("adminUser");
String pageurl = req.getServletPath();
if (adminUser == null)
{
boolean login = false;
for (String url : noUrlPage)
{
if (pageurl.equals(url))
{
login = true;
break;
}
}
if(login)
{
chain.doFilter(request, response);
}
else {
res.sendRedirect(loginPage);
}
} else
{
chain.doFilter(request, response);
}
req = null;
res = null;
session = null;
adminUser = null;
}
public void destroy() {
}
}