spring security——Spring Social簡介(五)

一、簡介

        關於OAuth可以參考《理解OAuth 2.0》中的進行理解,這裏的Spring Social就是一個遵循oauth協議的框架,所以可以用它來做第三方的登錄。那麼spring security 與 oath social是什麼關係呢?沒關係!

        我們知道在spring security中被認定爲認證成功的標誌是 根據用戶信息構建Authentication放入SecurityContext中。而在Social中只要引導用戶走完oath的所有流程,最後根據用戶信息構建Authentication放入SecurityContext中即完成了第三方登錄 操作。social的原理就是基於我們之前學習過的過濾鏈原理,在過濾器鏈上增加了一個 SocialAuthenticationFilter,攔截到有需要第三方登錄的請求則開始引導完成所有的流程,就完成了第三方登錄。

二、social基本概念和原理

        我們先來看一下OAuth運行的基本流程

 

1-5步都是協議化流程步驟,這裏只介紹與我們要寫代碼相關的流程,實現這些節點就可以運行了。 

 

  • OAuth2Operations(OAuth2Template):封裝了1-5的步驟
  • Api(AbstractOAuth2ApiBinding):對第6步提供了支持
  • Connection (OAuth2Connection):包含用戶信息的對象,
  • ConnectionFactory(OAuth2ConnectionFactory)ServiceProvider 創建Connection,要走1-5的流程,所以包含ServiceProvider;ApiAdapter OAuth2Connection是固定結構的數據,對第三方api返回的數據進行匹配,讀取用戶信息。

那麼服務提供的信息是如何與業務系統中的用戶是如何關聯的呢?在 social 中是存在數據庫中的,存放的是業務系統的userid與服務商用戶的一個對應關係。由誰來操作這個數據庫中的表呢?UsersConnectionRepository(JdbcUsersConnectionRepository)。官網(https://projects.spring.io/spring-social/)中頁面信息提供了

  • Main Projects 官網已發佈的項目,如連接Facebook的項目(上面講的基本上都實現了,可能只需要簡單的配置即可)
  • Incubator Projects 孵化中的項目,也就是正在開發中的
  • Community Projects 社區項目,非官網提供,但是放在這裏應該質量還算是比較好的吧
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章