SecurityOauth2-openId

简介: SecurityOauth2-openId

请求路径:

http://127.0.0.1:8080/oauth/token?grant_type=openId&client_id=rgfMqhmW25rxtT7k&client_secret=df447dd42d2dd322fc308f6ee55c2e3c0f6ed5ca&name=徐国兴&mobile=17540558408&certno=320219195204083011

探究

步骤

  1. 1.authenticate

  2. 2.通过client_id 获取表中的client详细信息

  3. 3.将查回来的client信息以用户名为client_id 密码为密钥的形式放入User对象中



  4. 4.校验密钥传过来的和数据库中的是否匹配

  5. 5.开始执行 createSuccessAuthentication(principalToReturn, authentication, user);

  6. 6.开始交给认证提供者 进行认证

  7. 7.拦截

  8. 8.BasicAuthenticationFilter拦截Header有没有Authorization没有直接放行

  9. 9.到了我们自定义的jwt拦截器(该拦截器的位置是UsernamePasswordAuthFilter 前边)

  10. 10.到了我们的/oauth/token

  11. 11.调用postAccessToken

  12. 12.创建tokenRequest


  1. 13.开始生成token


  1. 14.grant方法


  1. 15.delegate.grant()方法(遍历每一种支持的方式,如果不是我们传的方式就会直接返回null)



  2. 16.我们自定义的类继承了 AbstractTokenGranter实现了里边的getOAuth2Authentication方法



  1. 开始调用上上图的认证




  2. 我们自己定义的UserDetailsService中的loadUserByUsername方法



  3. 生成jwt
相关文章
|
搜索推荐 测试技术 数据安全/隐私保护
【Docker项目实战】Docker环境下部署NeonLink书签平台
【2月更文挑战第17天】Docker环境下部署NeonLink书签平台
462 0
|
存储 安全 Go
|
机器学习/深度学习 人工智能 自然语言处理
还不懂如何与AI高效交流?保姆级且全面的chatGPT提示词工程教程来啦!(一)基础篇
这篇文章是一篇保姆级的教程,旨在全面介绍如何与AI进行高效交流,包括ChatGPT的前世今生、应用场景以及提问的基础技巧。
还不懂如何与AI高效交流?保姆级且全面的chatGPT提示词工程教程来啦!(一)基础篇
|
9月前
|
设计模式 XML 算法
策略模式(Strategy Pattern)深度解析教程
策略模式属于行为型设计模式,通过定义算法族并将其封装为独立的策略类,使得算法可以动态切换且与使用它的客户端解耦。该模式通过组合替代继承,符合开闭原则(对扩展开放,对修改关闭)。
|
NoSQL Java API
MongoDB 强制使用索引 hint
MongoDB 强制使用索引 hint
518 3
|
运维 监控 网络协议
IP 地址是什么,有什么用,通俗易懂答案?
**IP地址是互联网上设备的唯一标识,分为IPv4(32位,如192.168.1.1)和IPv6(128位,如2001:0db8:85a3:0000:0000:8a2e:0370:7334)。IP地址用于定位设备、数据包传递、网络安全和管理。分为公有(全球唯一)和私有(局域网内使用)IP,以及动态(DHCP分配)和静态(固定不变)IP。IP管理由ICANN和区域机构负责。了解IP地址基础知识对网络理解和故障排查至关重要。**
2069 3
|
JavaScript Linux
2022年超详细在CentOS 7上安装Node.js方法(源码安装)
这篇文章介绍了在CentOS 7系统上通过源码安装Node.js的详细步骤,包括从官网下载Node.js源码包、将安装包上传至虚拟机、解压安装包、删除压缩文件、编译安装Node.js、检查Node.js和npm版本,以及切换npm源到淘宝镜像以加速下载。此外,还提供了一个获取Linux下Node.js离线安装包的微信公众号搜索方式。
|
机器学习/深度学习 数据采集 数据可视化
机器学习 —— 分类预测与集成学习(上)
机器学习 —— 分类预测与集成学习
297 2