Shiro的統一認證受權git
Shiro是Apache下面的一個簡單,易用的Java權限框架,對於單體應用來說,Shiro徹底可以極好的,快速的知足權限的需求,因此通常在作項目的時候,Shiro都會成爲開發者的首選。github
但是,若是你須要作第二個,第三個,第n個應用,一樣須要相同的認證、受權時,可能就須要對Shiro進行必定的擴展或者是集成其它框架,才能很好的知足你的需求了。框架
Shiro是如何進行認證受權maven
Shiro自己並無幫你實現認證、受權,但Shiro很好的定義了權限相關的一些概念,讓你完成具體的實現學習
在Shiro裏,經過實現Realm來完成上面2件事情,當你時單體應用的時候,很是簡單就能完成應用的認證受權。ui
可是當你有多個應用,須要複用同一套用戶以及權限信息時該怎麼作呢,能夠複用Realm,用戶權限在同一個db中,這樣的話是能夠實現的,可是耦合過高,不一樣的應用必需要接入同一個數據源才行;或者能夠把用戶權限相關的DAO剝離出來,做爲RPC或Rest調用,也能夠實現;可是更好的方式是把認證受權整個剝離出來,單獨做爲認證受權服務spa
基於Shiro的統一認證受權code
爲了實現統一認證受權,Shiro有CasFilter,能夠集成CAS,可是CAS又是另一套框架,較爲重,有單獨的學習成本,因此這裏介紹一種更簡單,輕量,易用的,基於Shiro的認證受權服務shiro-uaaserver
認證受權流程blog
以下圖:
使用
auth-server
resource-server
基本上開箱即用,目前auth-server只是做爲jar包提供,須要本身實現登陸邏輯,後續會有可部署服務
shiro-uaa具體的相關說明介紹能夠查看項目地址