日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.shiro简介

發布時間:2025/3/15 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.shiro简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.簡介

Apache Shiro是Java的一個安全(權限)框架,可以完成認證、授權、加密、會話管理、Web集成、緩存等功能。JavaSE和JavaEE都可適用。
相較于Spring Security框架,shiro使用的還是比較多

2.基本功能:


? Authentication:身份認證/登錄,驗證用戶是不是擁有相應的身份;
? Authorization:授權,即權限驗證,驗證某個已認證的用戶是否擁有某個權限;即判斷用 戶是否能進行什么操作,如:驗證某個用戶是否擁有某個角色?;蛘呒毩6鹊尿炞C某個用戶 對某個資源是否具有某個權限;
? Session Manager:會話管理,即用戶登錄后就是一次會話,在沒有退出之前,它的所有 信息都在會話中;會話可以是普通 JavaSE 環境,也可以是 Web 環境的;
? Cryptography:加密,保護數據的安全性,如密碼加密存儲到數據庫,而不是明文存儲; ? Web Support:Web 支持,可以非常容易的集成到Web 環境;
? Caching:緩存,比如用戶登錄后,其用戶信息、擁有的角色/權限不必每次去查,這樣可 以提高效率;
? Concurrency:Shiro 支持多線程應用的并發驗證,即如在一個線程中開啟另一個線程,能 ? 把權限自動傳播過去;
? Testing:提供測試支持;
? Run As:允許一個用戶假裝為另一個用戶(如果他們允許)的身份進行訪問;
? Remember Me:記住我,這個是非常常見的功能,即一次登錄后,下次再來的話不用登 錄了

3.從外部看shiro


(1)Subject:
應用代碼直接交互的對象是 Subject,也就是說 Shiro 的對外 API 核心就是 Subject。Subject 代表了當前“用戶”, 這個用戶不一定 是一個具體的人,與當前應用交互的任何東西都是 Subject,如網絡爬蟲, 機器人等;與 Subject 的所有交互都會委托給 SecurityManager; Subject 其實是一個門面,SecurityManager 才是實際的執行者;
(2)SecurityManager:
安全管理器;即所有與安全有關的操作都會與 SecurityManager 交互;且其管理著所有 Subject;可以看出它是 Shiro 的核心,它負責與 Shiro 的其他組件進行交互,它相當于 SpringMVC 中 DispatcherServlet 的角色
(3)Realm:Shiro 從 Realm 獲取安全數據(如用戶、角色、權限),就是說 SecurityManager 要驗證用戶身份,那么它需要從 Realm 獲取相應的用戶 進行比較以確定用戶身份是否合法;也需要從 Realm 得到用戶相應的角色/ 權限進行驗證用戶是否能進行操作;可以把 Realm 看成 DataSource

4.從內部看shiro


? Subject:任何可以與應用交互的“用戶”;
? SecurityManager :相當于SpringMVC 中的 DispatcherServlet;是 Shiro 的心臟; 所有具體的交互都通過 SecurityManager 進行控制;它管理著所有 Subject、且負責進 行認證、授權、會話及緩存的管理。
? Authenticator:負責 Subject 認證,是一個擴展點,可以自定義實現;可以使用認證 策略(Authentication Strategy),即什么情況下算用戶認證通過了;
? Authorizer:授權器、即訪問控制器,用來決定主體是否有權限進行相應的操作;即控 制著用戶能訪問應用中的哪些功能;
? Realm:可以有 1 個或多個 Realm,可以認為是安全實體數據源,即用于獲取安全實體 的;可以是JDBC 實現,也可以是內存實現等等;由用戶提供;所以一般在應用中都需要 實現自己的 Realm;
? SessionManager:管理 Session 生命周期的組件;而 Shiro 并不僅僅可以用在 Web 環境,也可以用在如普通的 JavaSE 環境
? CacheManager:緩存控制器,來管理如用戶、角色、權限等的緩存的;因為這些數據 基本上很少改變,放到緩存中后可以提高訪問的性能
? Cryptography:密碼模塊,Shiro 提高了一些常見的加密組件用于如密碼加密/解密。

總結

以上是生活随笔為你收集整理的1.shiro简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。