1、自定义拦截器实现类
public class JwtIntercepterUtil implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
try{
String token = request.getHeader("Authorization");
System.out.println(token);
JwtUtil jwtUtil = new JwtUtil();
jwtUtil.isLegitimate(token);
System.out.println(token);
if (jwtUtil.isExpired(token)){
Map map = new HashMap();
map.put("401","登录过期,请重新登录");
response.setContentType("application/json;charset=UTF-8");
String json = new ObjectMapper().writeValueAsString(map);
response.getWriter().println(json);
return false;
}
return true;
}catch (Exception e){
Map map = new HashMap();
map.put("code","401");
map.put("message","登录状态异常,请重新登录");
response.setContentType("application/json;charset=UTF-8");
String json = new ObjectMapper().writeValueAsString(map);
response.getWriter().println(json);
return false;
}
}
}
2、建立config进行配置
@Configuration
public class IntercepterConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new JwtIntercepterUtil())
.addPathPatterns("/**")
.excludePathPatterns("/login/**")
.excludePathPatterns("/swagger-ui.html")
.excludePathPatterns("/swagger-resources/**")
.excludePathPatterns("/webjars/springfox-swagger-ui/**")
.excludePathPatterns("/v2/api-docs");
}
}