创建filter文件夹,创建对应的filter实现Filter接口
![在这里插入图片描述](https://img-blog.csdnimg.cn/f346dccb86be44d9b7fc706583820183.png)
@Slf4j
@WebFilter(filterName = "loginChechkFilter",urlPatterns = "/*")
public class LoginCheckFilter implements Filter {
public static final AntPathMatcher PATH_MATCHER=new AntPathMatcher();
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse responce = (HttpServletResponse) servletResponse;
String requestURI = request.getRequestURI();
String[] uris = new String[]{
"/employee/login",
"/employee/logout",
"/backend/**",
"/front/**",
"/favicon.ico"
};
if (check(uris,requestURI)){
filterChain.doFilter(request,responce);
return;
}
log.info("拦截到请求:{}",request.getRequestURI());
log.info("登陆信息:{}",request.getSession().getAttribute("employee"));
if (request.getSession().getAttribute("employee")!=null){
filterChain.doFilter(request,responce);
log.info("登陆信息:{}",request.getSession().getAttribute("employee"));
return;
}
responce.getWriter().write(JSON.toJSONString(R.error("NOTLOGIN")));
return;
}
public boolean check(String[] urls,String requestURI){
for (String url : urls) {
boolean match = PATH_MATCHER.match(url,requestURI);
if (match){
return true;
}
}
return false;
}
}
添加@ServletComponentScan注解
@SpringBootApplication
@Slf4j
@ServletComponentScan
public class ReggieBootApplication {
public static void main(String[] args) {
SpringApplication.run(ReggieBootApplication.class, args);
log.info("程序启动");
}
}