记录一次spring发布的oauth2服务器demo学习——第二步,看全流程网络(二)

设置日志级别

authorization,resource,client日志设置都如下所示

logging:
level:
# 根日志级别
root: DEBUG
# 基础web相关日志级别
org.springframework.web: DEBUG
# security相关日志级别
org.springframework.security: DEBUG
# oauth2相关日志界别
org.springframework.security.oauth2: DEBUG
# spring-boot自动配置日志级别
org.springframework.boot.autoconfigure: INFO

依次启动服务

authorization,resource,client服务依次启动

详解网络请求

  1. client发起请求: http://172.18.128.1:9000/.well-known/openid-configuration,
    该请求地址由 spring.security.oauth2.client.provider.spring.issuer-uri配置的地址加上 /.well-known/openid-configuration
    获取oauth2认证服务相应地址信息
    image
    image
  2. client接收请求: / ,重定向至Oauth2认证服务

client内部处理
确认sessionid
认证请求
认证失败,保存目标地址1到session里面
重定向到client的登录地址(此处为配置的oauth2登录地址)
image

  1. client接收请求: /oauth2/authorization/messaging-client-oidc ,该请求传递了client-id,即messaging-client-oidc,取该client-id下对应的oauth2配置进行相应处理,此处配置为拼接oauth2授权地址,并重定向。
  2. auth接收请求 /oauth2/authorize ,接收参数如下
参数 参数值 参数说明
response_type code 授权类型
client_id messaging-client clientId
scope openid 授权访问
state hGMhb9YbTpWvN6Zk9VPSwQLKLS8NyDsdzZKHxKQLhQQ%3D state,暂未发现实际意义,可作为扩展参数
redirect_uri http://127.0.0.1:8080/login/oauth2/code/messaging-client-oidc 回调uri,该地址必须和oauth2授权服务配置的一致
nonce Rzc0EFJRvtmC8_zccxZVkWKKMl0MmAPnEbClD4mfSj8 暂未发现实际意义

auth内部处理
确认sessionid
认证请求
认证失败,保存目标地址2到session里面
重定向到auth的登录地址 http://127.0.0.1:9000/login
image

  1. auth接收web的登录页面请求,返回登录页面视图
  2. auth接收web的表单登录请求,校验账号密码,登录成功,重定向至目标地址2
    image
  3. auth接收web目标地址2请求,即初始的授权请求,校验授权请求传递的client信息,校验通过,重定向至回调地址redirect_uri,同时带上code参数
    image
  4. client接收web的code校验请求:http://127.0.0.1:8080/login/oauth2/code/messaging-client-oidc

通过接口地址确定clientid为 messaging-client-oidc,
然后再向该client对应的aouth2服务校验code获取token,
同时通过jwts获取相应jwt信息,解析token,
认证本次会话session为认证通过session。
从session中去除目标地址1,重定向到目标地址1
image

  1. client接收webhttp://127.0.0.1:8080/ 请求,校验session,认证通过,重定向到 http://127.0.0.1:8080/index
    image

  2. client接收webhttp://127.0.0.1:8080/index 校验session,认证通过,返回相应视图解析
    image

posted @   临渊不羡渔  阅读(689)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示