密码模式获取token,redis存储token流程
2020-12-18 17:12:46 0 举报
获取token以及token的存储
作者其他创作
大纲/内容
创建OAuth2AccessToken
createAccessToken
createAccessToken(上一步创建的OAuth2Authentication)
new DefaultOAuth2AccessToken(UUID.randomUUID().toString()以及一些增强操作
从rtokenrequest中取出clientId,并查询出clientDetails并进行相关校验
OAuth2AccessToken
这里使用的是ResourceOwnerPasswordTokenGranter
看能不能从redisTokenStore中根据authentication取出token
对client进行scope校验
通过DefaultTokenService去真正的创建token
loadClientByClientId(clientId)
首先获取clientId
TokenRequest
OAuth2Request
/oauth/token
用clidentDetails和传进来的参数创建tokenRequest
tokenStore.getAccessToken(authentication)
validateScope
Authentication
getClientId(principal)
grant type类型校验
用clientId换取ClientDetails(通过ClientDetailsService去好获取)
OAuth2Authentication
在redis中存储的key的形式
ResourceOwnerPasswordTokenGranter去获取Authentication
token创建对象之间依赖关系
创建oauth2AccessToken流程
1) \"uname_to_access:asus:admin\"2) \"client_id_to_access:asus\"3) \"auth:a46375da-6542-458b-9a38-b323b1d14cef\"4) \"auth_to_access:8196559f0a1b17a2678f591b360b5957\"5) \"access:a46375da-6542-458b-9a38-b323b1d14cef\"
用序列化后的(AUTH_TO_ACCESS + key)作为key去redis中取token
0 条评论
下一页