1、自定义拦截器
@Component
public class JwtTokenInterceptor implements HandlerInterceptor {
@Autowired
private JwtProperties jwtProperties;
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String token = request.getHeader(jwtProperties.getTokenName());
if (token == null) {
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
return false;
}
try {
Claims claims = JwtUtil.parseToken(token, jwtProperties);
Long userId = Long.valueOf(claims.get("userId").toString());
return true;
} catch (Exception ex) {
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
return false;
}
}
}
2、注册拦截器配置
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
@Autowired
private JwtTokenInterceptor jwtTokenInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(jwtTokenInterceptor)
.addPathPatterns("/user/**")
.excludePathPatterns("/user/login");
}
}
注意:此篇文章要在看了 "JWT令牌实现登录授权" 这篇文章之后再看