Spring Security OAuth2 源碼分析


Spring Security OAuth2 主要兩部分功能:1、生成token,2、驗證token,最大概的流程進行了一次梳理

1、Server端生成token (post /oauth/token)

 

  AuthorizationServerSecurityConfigurer 在配置階段    如果允許form表單提交則會經過ClientCredentialsTokenEndpointFilter, 剩下的流程可以總結為生成token、存儲token。

  生成token:按類型生成token,類型與oauth2四種類型(密碼、授權碼、客戶端、簡化)模式相對 存儲token: 支持 內存、redis、數據庫、等多種方式

 

2、Resource端驗證token (訪問受限接口)

 

ResourceSecurityConfigurer在配置階段,對Resource進行配置, OAuth2核心過濾器 OAuth2AuthenticationProcessingFilter, 如果請求中存在token 則進行驗證,如果不存在則不驗證(但是Spring Security會對接口權限進行驗證)。

存在token流程:

            根據 配置的userInfoEndpointUrl 到 server獲取token的授權信息 OAuthAuthentication。 

            根據返回結果判斷token是否有效(如果返回結果結果中存在error表明訪問限制: 也就是說server對token無效的處理后,一定要返回非 200的http響應Resource才能認定無效

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM