(三)spring security:OAuth2 SSO “授权码“获得 JWT令牌,访问受保护的资源,源码分析流程

一、应用场景

    承接上文(二)spring security:使用 OAuth2 SSO 实现单点登录。
 

二、步骤分解

0.客户端注册授权服务器

后续的 debug步骤,我就不再贴图了。太多了。可以在源码分析图中,梳理 oAuth2整个授权与认证流程。

1.访问受保护的资源 URI

http://localhost:8083/orderSystem/order/list

2.授权端点(自动跳转,显示登录页)
http://localhost:8080/oauth/authorize?client_id=OrderManagement&redirect_uri=http://localhost:8083/orderSystem/login&response_type=code&state=2uBjsM

3.授权码(登录成功后,自动跳转)
http://localhost:8083/orderSystem/login?code=IdP6LA&state=2uBjsM

4.jwt令牌(自动跳转,静默请求,访问成功)
post:  http://localhost:8080/oauth/token
header:  Authorization: Basic xxxxxxxxxxxxxxxxxxx
#参数
grant_type=authorization_code
code=IdP6LA
redirect_uri=http://localhost:8083/orderSystem/login
client_id=order123
注意:这个请求中唯一需要注意的一个 header参数就是Authorization= Basic xxxXXX,这是用于认证客户端的。

三、源码分析

  • oauth2源码分析-client端启动注册接入SSO

  • oauth2源码分析-授权码访问与JWT令牌

图片太大太长,只能截断了,(*/ω\*)

四、遗留问题

   所搭建的框架可以应用于生产业务系统吗?并不能,因为还未实现以下功能:

  1. 前后端分离模式下,如何保证 ajax请求能正常访问资源URI?
  2. 后台管理系统的"权限菜单",在 oAuth2协议下,还能不能实现"RBAC权限控制"?
  3. 如何实现在 A业务系统下 logout后,也不能访问其他业务系统?
  4. 用户登录后,在缓存中存放用户的基本信息(在"业务系统中",已利用 ehcache实现);退出后,删除信息。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值