MCPcopy Create free account
hub / github.com/Easesgr/reggie / UserFilter

Class UserFilter

src/main/java/com/anyi/reggie/filter/UserFilter.java:23–75  ·  view source on GitHub ↗

@author 安逸i @version 1.0

Source from the content-addressed store, hash-verified

21 * @version 1.0
22 */
23@WebFilter(filterName = "userFilter",urlPatterns = "/*")
24@Slf4j
25public class UserFilter implements Filter {
26
27 public static final AntPathMatcher PATH_MATCHER = new AntPathMatcher();
28
29 @Override
30 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
31 HttpServletRequest servletRequest = (HttpServletRequest) request;
32 HttpServletResponse servletResponse = (HttpServletResponse) response;
33
34 log.info(servletRequest.getRequestURI());
35 // 设置不要拦截的请求
36 String[] urls = new String[]{
37 "/employee/login",
38 "/employee/layout",
39 "/backend/**",
40 "/front/**",
41 "/swagger-ui.html",
42 "/user/code",
43 "/user/login"
44 };
45 if (match(servletRequest.getRequestURI(),urls)){
46 chain.doFilter(servletRequest,servletResponse);
47 return;
48 }
49 // 需要验证的请求
50 User user = (User)servletRequest.getSession().getAttribute("user");
51 Employee employee = (Employee)servletRequest.getSession().getAttribute("employee");
52
53 // 需要验证的请求
54 if (user != null){
55 UserContext.setUserId(user.getId());
56 chain.doFilter(servletRequest,servletResponse);
57 }else if (employee !=null){
58 UserContext.setUserId(employee.getId());
59 chain.doFilter(servletRequest,servletResponse);
60 }else {
61 response.getWriter().write(JSONUtil.toJsonStr(R.error("NOTLOGIN")));
62
63 }
64 }
65
66 // 匹配url
67 public boolean match(String url,String[] urls){
68 for (String item : urls) {
69 if (PATH_MATCHER.match(item, url)){
70 return true;
71 }
72 }
73 return false;
74 }
75}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected