package tzy.template.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @auther tzy
* @date 2021/3/28 12:30
* @aim 拦截器的模板以及一些提示
*/
public class InterceptorTemplate implements HandlerInterceptor {
//进入 Handler方法之前执行
//应用场景:用于身份认证、身份授权
//比如身份认证,如果认证不通过表示当前用户没有登陆,需要此方法拦截不再向下执行
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//return false表示拦截,不向下执行
//return true表示放行
return false;
}
//进入Handler方法之后,返回modelAndView之前执行
//应用场景:从modelAndView出发:将公用的模型数据(比如菜单导航)在这里传到视图,也可以在这里统一指定视图
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
//执行Handler完成执行此方法
//应用场景:统一异常处理,统一日志处理
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
package tzy.template.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @auther tzy
* @date 2021/3/28 12:22
* @aim 拦截器的配置
*/
//@Configuration
public class InterceptotConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
}
// @Override
// public void addInterceptors(InterceptorRegistry registry) {
// registry.addInterceptor(new InterceptorTemplate()) //使用JWT作为拦截器
// .addPathPatterns("/user/**") //其他接口进入拦截
// .excludePathPatterns("/login") //该接口放行所有
// .excludePathPatterns("/register/**")
// .excludePathPatterns("/testVerify");
// }
}
原文:https://www.cnblogs.com/TPureZY/p/14637823.html