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件事情,當你時單體應用的時候,非常簡單就能完成應用的認證授權。
但是當你有多個應用,需要復用同一套用戶以及權限資訊時該怎麼做呢,可以復用Realm,用戶權限在同一個db中,這樣的話是可以實現的,但是耦合太高,不同的應用必須要接入同一個資料來源才行;或者可以把用戶權限相關的DAO剝離出來,作為RPC或Rest調用,也可以實現;但是更好的方式是把認證授權整個剝離出來,單獨作為認證授權服務基於Shiro的統一認證授權
為了實現統一認證授權,Shiro有CasFilter,可以集成CAS,但是CAS又是另外一套框架,較為重,有單獨的學習成本,所以這裡介紹一種更簡單,輕量,易用的,基於Shiro的認證授權服務shiro-uaa認證授權流程
使用者請求受保護資源Resource Server
Resource Server判斷使用者是否已登入
如果沒有登錄,Resource Server引導使用者到UAA Server進行登入
使用者在UAA Server登錄,如果登入成功,UAA Server返回code給用戶,並引導使用者到先前造訪的Resource Server
- Resource Server驗證accessToken是否合法,如果合法,請在Resource Server中儲存使用者資訊
- 如下圖:
- 使用
- #引用maven
- 實作自己的登入
以上是Java權限框架介紹:Shiro的統一認證授權的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

Dreamweaver Mac版
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器