SpringBoot学习笔记(六):配置拦截器,控制登录跳转

来源:互联网 发布:linux命令行删除文件 编辑:程序博客网 时间:2024/06/05 20:32

总共分2步:

  • 配置自己的拦截器;
  • 在web的配置文件中,实例化上面的拦截器,并添加规则;

拦截器代码:MyInterceptor.java

public class MyInterceptor implements HandlerInterceptor {    Logger logger = LoggerFactory.getLogger(MyInterceptor.class);    @Override    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)            throws Exception {        // TODO Auto-generated method stub        logger.info("------preHandle------");        //获取session        HttpSession session = request.getSession(true);        //判断用户ID是否存在,不存在就跳转到登录界面        if(session.getAttribute("userId") == null){            logger.info("------:跳转到login页面!");  response.sendRedirect(request.getContextPath()+"/admin/login");            return false;        }else{            session.setAttribute("userId", session.getAttribute("userId"));            return true;        }    }    @Override    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,            ModelAndView modelAndView) throws Exception {        // TODO Auto-generated method stub    }    @Override    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)            throws Exception {        // TODO Auto-generated method stub    }}

web配置文件:WebConfig.java

@Configuration@EnableWebMvc@ComponentScanpublic class WebConfig extends WebMvcConfigurerAdapter implements ApplicationContextAware {    private ApplicationContext applicationContext;    public WebConfig(){        super();    }    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {        registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/static/");        registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/");        super.addResourceHandlers(registry);          }    @Override    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {        this.applicationContext = applicationContext;    }     @Override    public void addInterceptors(InterceptorRegistry registry) {        //拦截规则:除了login,其他都拦截判断        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/adminUser/login");        super.addInterceptors(registry);    }}
1 0
原创粉丝点击