Spring Security OAuth2 完全解析 (流程/原理/实战定制) —— Client / ResourceServer 篇

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

一、前言

本文假设读者对 Spring Security 本身原理有一定程度的了解,假设对 OAuth2 规范流程、Jwt 有基础了解,以此来对 SpringSecurity 整合 OAuth2 有个快速全面的认识。
(关于总体流程,若对SS实在不熟悉可以简单理解为:Filter构造Authentication-> Provider认证并填充-> 设置到SecurityContext -> 而后用于Filter/AOP鉴权)

要了解一个SpringSecurity模块,就是了解它如何身份认证、如何自定义、(至于如何鉴权是SpringSecurity通用部分),对应到代码就是:背后的相关 Configurer、Filter、Authentication、Provider。

本文以最新Spring Boot版本2.6.2 以授权码模式梳理;涉及源码太多,就不放源码对照了,可以自行fork查看;斜体表示可配置自定义替换的部分

  • 第一部分:先演示默认配置下 spring-boot-starter-oauth2-client 所带来的流程和效果,建立大概认知。对应代码 thirdpart-login 项目
  • 第二部分:全面解析 oauth2login、oauth2client 原理。
  • 第三部分:常见业务下我们自己用户系统也有token分发需求,因此也解读下提供JWT服务的 oauth2ResourceServer 模块
  • 第四部分:综上所述,实战定制SpringSecurity OAuth2。对应代码 thirdpart-login-custom

二、默认 spring-boot-starter-oauth2-client 效果预览

OAuth2ClientAutoConfiguration自动配置类引入的默认配置,可由代码 thirdpart-login 复现。

  1. 后端在 .yml 配置中做好相关配置
  2. 访问受限资源"/user",后端鉴权异常后,由LoginUrlAuthenticationEntryPoint重定向到登录页。
  3. 登录页则由DefaultLoginPageGeneratingFilter根据相关配置自动构造页面String返回。
  4. 页面点击发出授权请求。
    后端OAuth2AuthorizationRequestRedirectFilter匹配响应该模板路径,返回实际授权码请求的重定向响应,转入三方授权页面:
  5. 同意授权后,Gitee会向游览器返回重定向响应。
    游览器向 “redirect-uri” 发起访问,此时被后端OAuth2LoginAuthenticationFilter匹配处理,其会用请求携带的 code 向配置的 “token-
  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值