1、设置拦截资源
public class LoginHandlerIntercepter implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object loginUser = request.getSession().getAttribute("loginUser");
if(loginUser==null){
//没有登陆 回到登陆页
request.setAttribute("msg","没有权限请先登陆");
request.getRequestDispatcher("/login.html").forward(request,response);
return false;
}else{
//已经登陆直接放行
return true;
}
}
}
2、加拦截器添加到资源
@Bean public LocaleResolver localeResolver(){ return new MyLocaleResolver(); }
3、设置拦截资源和放行资源
springboot2开始静态资源需要配置放行
@Configuration public class Myconfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { // super.addViewControllers(registry); registry.addViewController("/").setViewName("login"); registry.addViewController("/login.html").setViewName("login"); registry.addViewController("/main.html").setViewName("dashboard"); } @Override public void addInterceptors(InterceptorRegistry registry) { //springboot已经做好了静态资源映射,不用处理静态资源 registry.addInterceptor(new LoginHandlerIntercepter()).addPathPatterns("/**").excludePathPatterns("/login.html","/","/user/login","/asserts/**" ,"/webjars/**" ,"/i18n/**" );} }
本文介绍了如何在Spring Boot 2应用中实现登录拦截器,确保只有已登录用户才能访问除特定资源外的其他页面,并配置了静态资源的放行路径。重点讲解了`LoginHandlerIntercepter`的实现和`Myconfig`中Interceptor的设置。
779

被折叠的 条评论
为什么被折叠?



