Spring Security OAuth2 源碼分析

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

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

 

  AuthorizationServerSecurityConfigurer 在配置階段    若是容許form表單提交則會通過ClientCredentialsTokenEndpointFilter, 剩下的流程能夠總結爲生成token、存儲token。數據庫

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

 

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

 

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

存在token流程:orm

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

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

相關文章
相關標籤/搜索