登录拦截
1 /** 2 * 检查用户是否登录 3 */ 4 @Slf4j 5 @WebFilter(filterName = "LoginCheckFilter", urlPatterns = "/*") 6 public class LoginCheckFilter implements Filter { 7 8 @Override 9 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 10 11 HttpServletRequest request = (HttpServletRequest) servletRequest; 12 HttpServletResponse response = (HttpServletResponse) servletResponse; 13 14 String requestURI = request.getRequestURI(); 15 log.info("拦截到请求:{}",requestURI); 16 17 String[] urls = new String[]{ 18 "/employee/login", 19 "/employee/logout", 20 "/backend/**", 21 "front/**" 22 }; 23 24 boolean check = check(urls, requestURI); 25 26 if (check || request.getSession().getAttribute("employee") != null) { 27 filterChain.doFilter(request, response); 28 return; 29 } 30 log.info("用户未登录"); 31 response.getWriter().write(JSON.toJSONString(R.error("NOTLOGIN"))); 32 } 33 34 public boolean check(String[] urls, String requestURI) { 35 AntPathMatcher antPathMatcher = new AntPathMatcher(); 36 for (String url : urls) { 37 boolean match = antPathMatcher.match(url, requestURI); 38 if (match) return true; 39 } 40 return false; 41 } 42 }