zoukankan      html  css  js  c++  java
  • springboot使用handlerintercpteradapter自定义拦截器

    以用户登录拦截验证为例

    1.创建一个自定义的登录拦截器LoginInterCeptor

    //编程方法被调用之前

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    String path = request.getServletPath();
    //验证session
    Object username = request.getSession().getAttribute("username");
    if(username !=null){
    return true;
    }
    //如果为空就去登录
    else {
    response.sendRedirect("/user/login");
    return false;
    }
    }

    2.配置WebMvcConfigurer,将自定义类加入到配置中
    @Configuration
    public class WebConfigurer implements WebMvcConfigurer {
    private static final List<String> EXCLUDE_PATH= Arrays.asList("/","/css/**","/js/**","/img/**");
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    //配置拦截所有请求
    registry.addInterceptor(LoginInterCeptor()).addPathPatterns("/**"). excludePathPatterns(EXCLUDE_PATH);

    }
    @Bean
    public LoginInterCeptor LoginInterCeptor(){

    return new LoginInterCeptor();
    }

    }

     3.注意EXCLUDE_PATH

    EXCLUDE_PATH常量为过滤器放行规则,如果改为

    . excludePathPatterns("/static/**");是不生效的

    4.还可以引入注解的方式
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface LoginRequired {
    }
    我用的第一种方式,注解方式就不多做赘述


  • 相关阅读:
    2021.07.14牛客学习
    2021.07.13学习总结
    new和malloc区别(自己口头描述)以及delete用法
    排序整理(c++实现),搭配图解
    如何将bilibili上缓存的文件转成MP4
    第07组 团队Git现场编程实战
    第二次结队编程作业
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
  • 原文地址:https://www.cnblogs.com/liushuaibiao/p/13178012.html
Copyright © 2011-2022 走看看