Shiro的統一認證授權
Shiro是Apache下面的一個簡單,易用的Java權限框架,對於單體應用來講,Shiro完全能夠極好的,快速的滿足權限的需求,所以一般在做專案的時候,Shiro都會成為開發者的首選。
可是,如果你需要做第二個,第三個,第n個應用,同樣需要相同的認證、授權時,可能就需要對Shiro進行一定的擴展或者是集成其它框架,才能很好的滿足你的需求了。
Shiro是如何進行認證授權
Shiro本身並沒有幫你實現認證、授權,但Shiro很好的定義了權限相關的一些概念,讓你完成具體的實現
認證
在Shiro裡,完成認證一般是這樣的subject.login(token),Subject代表一個用戶,Token代表一個用戶請求授權時提交的授權信息,透過AuthenticatingRealm .doGetAuthenticationInfo()取得目前Subject的一些信息,例如Principals,Credentials,校驗提交的token,如果登入成功,保存目前登入使用者
授權
在Shiro裡,權限控制一般是這樣的@RequiresPermissions,當使用者存取受保護資源的時候,Shiro會透過AuthorizingRealm.doGetAuthorizationInfo(),從目前認證透過Subject的Principals裡取得使用者的權限,判斷使用者是否能存取該資源
在Shiro裡,透過實作Realm來完成上面2件事情,當你時單體應用的時候,非常簡單就能完成應用的認證授權。
基於Shiro的統一認證授權
認證授權流程
使用者請求受保護資源Resource Server
Resource Server判斷使用者是否已登入
如果沒有登錄,Resource Server引導使用者到UAA Server進行登入
使用者在UAA Server登錄,如果登入成功,UAA Server返回code給用戶,並引導使用者到先前造訪的Resource Server
Resource Server用code到UAA Server取得access-token,token包含使用者授權資訊
以上是Java權限框架介紹:Shiro的統一認證授權的詳細內容。更多資訊請關注PHP中文網其他相關文章!