首页 > 其他分享 >使用拦截器拦截未认证用户请求-将你拒之门外

使用拦截器拦截未认证用户请求-将你拒之门外

时间:2023-01-03 15:02:51浏览次数:42  
标签:拦截器 preHandle 请求 认证 token 调用 拒之门外 public

拦截器

将用户的某个请求前中后进行插入相应操作。

preHandle
调用时间:Controller方法处理之前
执行顺序:链式Intercepter情况下,Intercepter按照声明的顺序一个接一个执行
若返回false,则中断执行,注意:不会进入afterCompletion

postHandle
调用前提:preHandle返回true
调用时间:Controller方法处理完之后,DispatcherServlet进行视图的渲染之前,也就是说在这个方法中你可以对ModelAndView进行操作
执行顺序:链式Intercepter情况下,Intercepter按照声明的顺序倒着执行
备注:postHandle虽然post打头,但post、get方法都能处理

afterCompletion
调用前提:preHandle返回true
调用时间:DispatcherServlet进行视图的渲染之后
多用于清理资源

使用拦截器拦截未认证用户

public abstract class AuthorizationInterceptor implements HandlerInterceptor{  
    public String token;
    private static final ThreadLocal<Map<String, Object>> userInfoLocal = new ThreadLocal<>();
    // 在业务处理器处理请求之前被调用  
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception{  
      token=request.get("");//从请求中获取token  
      // 处理token,如果验证通过,存进userInfoLocal供以后使用,不通过则直接拒之门外。
      return true;  
    }  
    // 在业务处理器处理请求完成之后,生成视图之前执行  
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)  
      throws Exception{  
    }  
    // 在DispatcherServlet完全处理完请求之后被调用,可用于清理资源  
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)  
      throws Exception{  
      userInfoLocal.remove();//将用户信息删除,防止出现内存泄漏
    }  
}

标签:拦截器,preHandle,请求,认证,token,调用,拒之门外,public
From: https://www.cnblogs.com/handsometaoa/p/17022235.html

相关文章

  • Django框架:13、csrf跨站请求伪造、auth认证模块及相关用法
    Django框架目录Django框架一、csrf跨站请求伪造1、简介2、csrf校验策略form表单csrf策略ajax请求csrf策略3、csrf相关装饰器FBV添加装饰器方式CBV添加装饰器方式二、aut......
  • Django之csrf校验 CBV加装饰器以及auth认证模块
    目录Django之csrf校验CBV加装饰器以及auth认证模块一、csrf跨站请求伪造二、csrf校验策略(在提交数据的位置添加唯一标识)三、CBV加装饰器四、auth认证模块五、auth认证......
  • PG认证的注意事项 (这很重要!)
    最近收到不少小伙伴的私信。市面上那么多家pg认证。到底哪一个更权威呢?你们和他们的区别是啥。至于区别是什么,相信大家看完这篇文章就明白了,关于谁更权威这个问题,我们无权......
  • Elastic 认证考试团购报名第三季
    0、Elastic认证考试介绍认证通过后,授予的徽章下方会有如上一段话:Elastic认证工程师拥有构建完整的Elasticsearch解决方案的技能。包含:包括部署、配置和管理Elasticsearch集......
  • 安装部署velero及资源配置及secert的tls认证-第五周
    安装miniomkdir-p/data/miniodockerpullminio/minio:RELEASE.2022-04-12T06-55-35Zdockerrun--nameminio-p9000:9000-p9999:9999-d--restart=always-e"M......
  • 【云原生-K8s】cka认证2022年12月最新考题及指南
    最新消息题型到目前为止,题型还是没有太大的变化,如果对于k8s零基础还是建议通过网上报班系统性的学习,如果对linux和k8s常用命令熟悉则无需报班,在某宝花个100块左右购买辅助资......
  • 消息认证码 数字签名 证书
    消息认证码什么是消息认证码消息认证码(MessageAuthenticationCode)是一种确认完整性并进行认证的技术,简称MAC;也可以理解为与密钥相关联的单向散列函数。消息认证码......
  • 微服务架构统一安全认证设计与实践
    当企业应用系统逐渐增多后,每个系统单独管理各自的用户数据容易形成信息孤岛,分散的用户管理模式阻碍了企业应用向平台化演进。当企业的互联网业务发展到一定规模,构建统一的......
  • 暖手器Rohs认证办理
    电暖手器出口欧盟市场需要办理rohs认证要求材料符合环保要求rohs认证咨询是欧盟立法制定的强制性标准,其全称是《关于限制电子设备中某些有害成分使用的指令》(restrictionof......
  • 美国电动自行车GCC认证解析
    自行车&电动自行车GCC认证办理流程如果你在亚马逊美国站上架成人自行车、儿童自行车、电动车等类目产品均需上传16CFR1512测试报告,否则将会被亚马逊进行下架产品、罚款等......