Spring实现拦截器主要需要实现HandlerInterceptor接口并在WebConfig中注册此拦截器.
实现HandlerInterceptor接口,在处理请求前判断token是否匹配。返回false则表明拦截此请求
public class TokenInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String token=request.getHeader("token");//获取请求中的token
if(token!=null) {
return token.equals("abcd");//还没有写存放token的方法 先和字符串比较
}
return false;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
}
}
注册此拦截器
@Configuration
@ComponentScan("com.*.*")
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
/**
* 注册拦截器
* @param registry
*/
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(tokenInterceptor()).addPathPatterns("/order/orderstatus");
}
@Bean
public TokenInterceptor tokenInterceptor(){
return new TokenInterceptor();
}
}