登录拦截

 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 }

 

posted @ 2022-05-24 20:08  LiRang2022  阅读(79)  评论(0)    收藏  举报