项目配置:框架Springboot 2.5、模板thymeleaf。
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String userName = (String) request.getSession().getAttribute("userName");
if(userName != null){
return true;
}
response.sendRedirect("/login.html");
return false;
}
}
@Configuration
public class MyConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/login.html", "/register.html", "/static/**");
}
}
但是访问 /login.html仍然被拦截器拦截,进入到prehandle方法。
求大神指教
太神奇了,许久之后我又在另一个demo中使用拦截器,竟然放行成功了,可能是两侧springboot版本不同的原因,有点无语。
加个 super.addIn... 试试?
好的,我去试试
不行吧,这个suer.addInterceptor会报错,WebConfig中这个是空方法