springMVC 过滤/拦截器 HandlerInterceptorAdapter

  • 一般的,对浏览器的请求进行拦截过滤,是通过Filter 实现,在 springMVC 中提供的 HandlerInterceptorAdapter 这个适配器,集成这个便可以实现Filter 所有功能进行拦截,
  • HandlerInterceptorAdapter 有4个方法
    • preHandle(): 预处理, 在业务处理器被调用之前执行,常用做权限验证,字符集等
    • postHandle(): 在业务处理执行完成返回渲染页面之前执行;
    • afterCompletion() 在业务处理器被调用之后执行
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    	// 获取并校验登录认证注解
        if(handler instanceof HandlerMethod) {
           
        }else{
            return true;
        }
    
        if(annotation == null){
            return true;
        }
    
        //从header中获取token
        String token = request.getHeader("token");
        //如果header中不存在token,则从参数中获取token
        if(StringUtils.isBlank(token)){
            token = request.getParameter("token");
        }
    
        //token为空
        if(StringUtils.isBlank(token)){
            throw new RRException("token不能为空");
        }
    
        //查询token信息
    
    
        //设置userId到request里,后续根据userId,获取用户信息
        request.setAttribute(USER_KEY, tokenEntity.getUserId());
    
        return true;
    }
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章