spring-oauth-server实践:授权方式四:client_credentials 模式下access_token的产生

授权结果

获取access_token成功, 访问资源服务器API

http://localhost:9000/api-gateway-engine/unity/user_info?access_token=94d129e7-7898-4084-9c08-6bfe27a2521e

准备工作

一、授权过程

FirewalledRequest[ Request(POST //10.200.44.82:9000/api-gateway-engine/oauth/token)@6406550f]

1、身份识别

2、权限检查

org.springframework.security.access.vote.AuthenticatedVoter@4d4dfe95

 

3、授权处理

3.1、授权入口

请求参数

ClientCredentialsTokenGranter.grant("client_credentials",tokenRequest)

org.springframework.security.oauth2.provider.client.ClientCredentialsTokenGranter@97e8aa0

 

3.2、获取数据库中的oauth_client_details信息

3.3、创建OAuth2Authentication对象(根据storedOAuth2Request对象(client+tokenRequest))

3.4、构建storedOAuth2Request(根据client和tokenRequest)

 

3.5、如果已经存在access_token, 更新数据库返回

 

 

二、结果验证

1、授权结果

第二步 访问资源服务器的API
access_token
94d129e7-7898-4084-9c08-6bfe27a2521e
token_type
bearer
scope
read write
expires_in
2591843
获取access_token成功, 访问资源服务器API

http://localhost:9000/api-gateway-engine/unity/user_info?access_token=94d129e7-7898-4084-9c08-6bfe27a2521e
JSON格式的资源服务器数据

2、访问业务

原文地址:https://www.cnblogs.com/lexiaofei/p/7152326.html