1、首先定义一个类继承Filter,类上加注解 @WebFilter(urlPatterns = "/*")
2、使用dofilter方法,方法中传入三个参数,分别是请求(ServletRequest re),响应(ServletResponse reo),执行dofilter方法需要到的 (FilterChain filterChain)
3、获取请求的地址路径(将ServletRequest和ServletResponse 强转成Http),判断路径中是否包含(contains)login,如果包含则放行
4、如果路径中不含login,判断携带的token是否为空,为空,没有令牌,需登录。
流程:
通过 ObjectMapper objectMapper = new ObjectMapper()中的 String json = objectMapper.writeValueAsString(errorreasult)方法将Resault类型的响应结果转换为字符串,再通过Http中的 resp.getWriter().write(json)方法将错误信息响应给前端,不放行
5、不为空,解析token中的令牌有效性(正确性和有效期)
解析过程:
1、通过工具类 JwtUtils中的parseJWT(jwt)方法解析,解析没有异常则通过放行
2、有异常,不通过,执行(通过 ObjectMapper objectMapper = new ObjectMapper()中的 String json = objectMapper.writeValueAsString(errorreasult)方法将Resault类型的响应结果转换为字符串,再通过Http中的 resp.getWriter().write(json)方法将错误信息响应给前端,不放行)