zoukankan      html  css  js  c++  java
  • spring boot 使用拦截器 实现 用户登录拦截

    登录拦截和和权限拦截实现类似
     
    首先自定义一个【DefineAdapter】类,这个类我是用来放自定义的配置(比如 自定义请求参数,自定义拦截器等),集成WebMvcConfigurerAdapter 重写他的addInterceptors 方法,将你拦截器的实现类
    加入即可,DefineAdapter 代码如下:
     
    @Configuration
    public class DefineAdapter extends WebMvcConfigurerAdapter {
    @Autowired
    public RoleInterceptor roleInterceptor;//用户角色拦截器
    @Autowired
    public LoginInterceptor loginInterceptor;//用户登录拦截器
    @Autowired
    MeidaRequestDataCustomArgumentResolver meidaRequestDataCustomArgumentResolver;//自定义参数绑定
    //自定义参数绑定
    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
    super.addArgumentResolvers(argumentResolvers);
    argumentResolvers.add(meidaRequestDataCustomArgumentResolver);
    }
    //自定义拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    //用户角色拦截器
    registry.addInterceptor(roleInterceptor).
    addPathPatterns("/**”);
    //用户登录拦截器
    registry.addInterceptor(loginInterceptor).
    addPathPatterns("/**").
    addPathPatterns("/*/login").
    addPathPatterns("/*/h5/login").
    excludePathPatterns("/switch/*");
    super.addInterceptors(registry);
    }
     
    自定义参数绑定 可以不用管,你就当没有那段代码!!
    addInterceptors:添加你自定义拦截器的实现逻辑类
    addPathPatterns:添加你要拦截的请求路径,如果有多个路径,就继续addPathPatterns
    excludePathPatterns:添加你不需要拦截的请求路径
     
    我拦截器具体的实现逻辑是LoginInterceptor 这个类,代码如下:
     
    @Service
    public class LoginInterceptor extends HandlerInterceptorAdapter { {
        protected static final Log logger = LogFactory.getLog(LoginInterceptor.class);
            public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
                
                    String userId = request.getParameter("userId");
                    if (StringUtils.isNotBlank(userId)){
                    return false;
           
            }
    }
    
    继承 HandlerInterceptorAdapter 抽象类,实现preHandle方法,在里面写你的拦截逻辑。
     
    完!
  • 相关阅读:
    堆内存与栈内存
    struts2 ajax 实现方式
    Hibernate 配置派生属性
    高效 jquery 的奥秘
    对于Maven管理的项目制定虚拟目录
    ThreadLocal 笔记
    java Thread.join()
    vi 使用笔记
    浮动闭合方案:clearfix
    熬夜之弊及改善之法
  • 原文地址:https://www.cnblogs.com/zhangXingSheng/p/7744993.html
Copyright © 2011-2022 走看看