吉尔伽胖虎 2023-02-10 17:17 采纳率: 66.7%
浏览 15
已结题

关于拦截器和过滤器作为校验登陆

我看过有俩个项目,分别用了过滤器和拦截器进行登陆的校验工作,所以想问下,一般情况下是使用哪一种的?以及有没有比较公认的写法

  • 写回答

3条回答 默认 最新

  • 纳川_cys 2023-02-10 17:47
    关注

    以我个人常用的Spring Boot 项目工程为例,使用过滤器和拦截器进行登录校验都是可以的。
    拦截器::适用于处理请求和响应的预处理和后处理。如果你希望控制请求的生命周期,并对请求/响应进行更多的修改,那么拦截器更适合你。
    过滤器:适用于对请求/响应的内容进行预处理和后处理。如果你只需要处理请求/响应的内容,而不需要对其生命周期进行控制,那么过滤器更适合你。

    另上述提到的:控制请求的生命周期的常见场景,例如:
        1. 权限控制:在访问某些资源之前,需要对用户进行身份校验。例如,在访问私有页面之前,需要先登录。
        2. 日志记录:在处理请求时,需要记录请求的信息,例如请求的 URL、请求头、请求参数等。
        3. 参数校验:在接收请求参数时,需要对参数进行校验,例如对请求参数的数据类型、数据格式等进行校验。
        4. 安全防护:在处理请求时,需要防范恶意攻击,例如 XSS 攻击、SQL 注入攻击等。
    (这些场景下,如果使用过滤器来处理,很可能不够灵活,可能需要对多个过滤器进行配置,才能实现相应的功能。而使用拦截器,可以方便地实现对请求的生命周期的控制,并实现上述功能。)
    

    所以,关于选择哪一种,取决于具体的业务场景和需求。
    至于有没有比较公认的写法,这是个主观的问题。不过,在实际项目开发中,大多数人通常会使用拦截器来进行登录校验,因为它具有更高的灵活性。可以通过定义不同的拦截器来实现不同的校验策略,更方便扩展。
    以上描述,希望能够帮到你~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月22日
  • 创建了问题 2月10日

悬赏问题

  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答