跳到主要内容

手把手教你如何使用Spring Security(中):接口认证

文章目录

  • 一、上篇回顾
  • 二、接口认证逻辑
    • JWT认证过滤器
  • 配置过滤器连
  • 三、请求演示
    • 接口定义
  • 未登录时
  • 登录之后
  • 四、系列文章
    • Spring Security 系列
  • Spring Security OAuth 系列

一、上篇回顾

> 在手把手教你如何使用Spring Security(上):登录授权 文章我们配置了如何登录,以及登录后获取JWT令牌,但是对于普通的请求依然无法访问,原因是我们并没有去校验令牌去认证请求的合法性,这一篇就来说说请求的认证。


二、接口认证逻辑

> 我们再来捋一下流程,首先用户进行登录授权之后会返回JWT令牌,客户端请求资源接口需要带上这个令牌,而后台要做的就是校验这个令牌的有效性。所以本篇需求也很清晰,校验JWT,其实也是只需要写一个JWT过滤器,将过滤器同上一篇一样的方式配置到过滤器链中。Github项目地址:spring-security-demo,修改记录:
>  

JWT认证过滤器

> 和登录时候创建过滤器一样,包括JWT过滤器本身(JwtAuthenticationFilter),认证用的Provider(JwtAuthenticationProvider),登录成功处理器(JwtRefreshSuccessHandler),登录失败处理器(共用HttpStatusLoginFailureHandler),还有最后一个过滤器配置器(JwtLoginConfigurer)。

  • JWT过滤器:和登录过滤器不一样,它继承的是 OncePerRequestFilter ,这里主要进行一个流程控制,URL白名单、匿名用户URL判断