@Component
@Slf4j
public class HeaderThreadLocalInterceptor implements HandlerInterceptor {
@Resource
CacheDao cacheDao;
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
String token = httpServletRequest.getHeader("token");
if(token != null){
if(cacheDao.getString(RedisKeyUtil.getPadMacTokenKey(token)) != null){
return true;
}else{
throw new BusinessException(ErrorCodeEnum.TOKEN_TTL_FAIL);
}
}
throw new BusinessException(ErrorCodeEnum.TOKEN_CHECK_FAIL);
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
@Configuration
public class InterceptorConfig extends WebMvcConfigurerAdapter {
@Bean
public HeaderThreadLocalInterceptor headerThreadLocalInterceptor() {
return new HeaderThreadLocalInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 请求头处理拦截器
registry.addInterceptor(headerThreadLocalInterceptor());
}
}