废话不多说上代码
@WebFilter(urlPatterns = "/*")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
if (false) {
filterChain.doFilter(servletRequest, servletResponse);
return;
}
HttpServletRequest request = (HttpServletRequest) servletRequest;
String servletPath = request.getServletPath();
if ("/admin/login".equals(servletPath) || "/admin/captcha".equals(servletPath)
|| servletPath.startsWith("/plugins/") || servletPath.startsWith("/dist/")) {
filterChain.doFilter(servletRequest, servletResponse);
} else {
User user = (User) request.getSession().getAttribute("user");
if (user != null) {
request.setAttribute("path", servletPath);
if (user.getPower() > 4) {
filterChain.doFilter(servletRequest, servletResponse);
} else {
if ("/admin/room".equals(servletPath)) {
((HttpServletResponse) servletResponse).sendRedirect("./main");
} else {
filterChain.doFilter(servletRequest, servletResponse);
}
}
} else {
((HttpServletResponse) servletResponse).sendRedirect("./login");
}
}
}
@Override
public void destroy() {
}
}