记录一次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服务依次启动
详解网络请求
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]()
client接收请求: / ,重定向至Oauth2认证服务
client内部处理
确认sessionid
认证请求
认证失败,保存目标地址1到session里面
重定向到client的登录地址(此处为配置的oauth2登录地址)
client接收请求: /oauth2/authorization/messaging-client-oidc ,该请求传递了client-id,即messaging-client-oidc,取该client-id下对应的oauth2配置进行相应处理,此处配置为拼接oauth2授权地址,并重定向。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
auth接收web的登录页面请求,返回登录页面视图auth接收web的表单登录请求,校验账号密码,登录成功,重定向至目标地址2。
![image]()
auth接收web的目标地址2请求,即初始的授权请求,校验授权请求传递的client信息,校验通过,重定向至回调地址redirect_uri,同时带上code参数
![image]()
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
-
client接收web的 http://127.0.0.1:8080/ 请求,校验session,认证通过,重定向到 http://127.0.0.1:8080/index
![image]()
-
client接收web的 http://127.0.0.1:8080/index 校验session,认证通过,返回相应视图解析
![image]()










浙公网安备 33010602011771号