SpringBoot拦截器的使用
新建类继承HandlerInterceptor
//拦截器
public class LoginHandlerInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//登录成功后应该有用户的session
Object loginUser =request.getSession().getAttribute("newUser");
//token
String token =request.getHeader("token");
if(loginUser ==null){
request.setAttribute("msg","没有权限,请先登录");
//请求转发
request.getRequestDispatcher("/index.html").forward(request,response);
}
return true;
}
}
拦截器在自定义视图中使用
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
//拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginHandlerInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/index.html","/","/user/login","/css/**","/js/**");
}
}
第二种在自定义视图使用
/**
* 配置(拦截器)
* @author hs
* @date 2021/8/11
*/
@Configuration
public class WebAuthConfig extends WebMvcConfigurationSupport {
@Resource
private AuthInterceptor authInterceptor;
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authInterceptor).addPathPatterns("/**");
}
}