教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Shiro簡介

更新時間:2018年10月24日16時04分 來源:傳智播客 瀏覽次數(shù):

  Apache Shiro是Java的一個安全框架。目前,使用Apache Shiro的人越來越多,因為它相當簡單,對比Spring Security,可能沒有Spring Security做的功能強大,但是在實際工作時可能并不需要那么復雜的東西,所以使用小而簡單的Shiro就足夠了。對于它倆到底哪個好,這個不必糾結(jié),能更簡單的解決項目問題就好了。

  Shiro架構(gòu)與功能介紹

  1.認證與授權(quán)相關基本概念

  兩個基本的概念

  安全實體:系統(tǒng)需要保護的具體對象數(shù)據(jù)

  權(quán)限:系統(tǒng)相關的功能操作,例如基本的CRUD

  Authentication:身份認證/登錄,驗證用戶是不是擁有相應的身份;

  Authorization:授權(quán),即權(quán)限驗證,驗證某個已認證的用戶是否擁有某個權(quán)限;即判斷用戶是否能做事情,常見的如:驗證某個用戶是否擁有某個角色?;蛘呒毩6鹊尿炞C某個用戶對某個資源是否具有某個權(quán)限;

  Session Manager:會話管理,即用戶登錄后就是一次會話,在沒有退出之前,它的所有信息都在會話中;會話可以是普通JavaSE環(huán)境的,也可以是如Web環(huán)境的;

  Cryptography:加密,保護數(shù)據(jù)的安全性,如密碼加密存儲到數(shù)據(jù)庫,而不是明文存儲;

  Web Support:Web支持,可以非常容易的集成到Web環(huán)境;

  Caching:緩存,比如用戶登錄后,其用戶信息、擁有的角色/權(quán)限不必每次去查,這樣可以提高效率;

  Concurrency:shiro支持多線程應用的并發(fā)驗證,即如在一個線程中開啟另一個線程,能把權(quán)限自動傳播過去;

  Testing:提供測試支持;

  Run As:允許一個用戶假裝為另一個用戶(如果他們允許)的身份進行訪問;

  Remember Me:記住我,這個是非常常見的功能,即一次登錄后,下次再來的話不用登錄了。

  2.Shiro四大核心功能:Authentication,Authorization,Cryptography,Session Management

  

  Shiro架構(gòu)

  3.Shiro三個核心組件:Subject, SecurityManager 和 Realms.

  Subject:主體,代表了當前“用戶”,這個用戶不一定是一個具體的人,與當前應用交互的任何東西都是Subject,如網(wǎng)絡爬蟲,機器人等;即一個抽象概念;所有Subject都綁定到SecurityManager,與Subject的所有交互都會委托給SecurityManager;可以把Subject認為是一個門面;SecurityManager才是實際的執(zhí)行者;

  SecurityManager:安全管理器;即所有與安全有關的操作都會與SecurityManager交互;且它管理著所有Subject;可以看出它是Shiro的核心,它負責與后邊介紹的其他組件進行交互,如果學習過SpringMVC,你可以把它看成DispatcherServlet前端控制器;

  Realm:域,Shiro從Realm獲取安全數(shù)據(jù)(如用戶、角色、權(quán)限),就是說SecurityManager要驗證用戶身份,那么它需要從Realm獲取相應的用戶進行比較以確定用戶身份是否合法;也需要從Realm得到用戶相應的角色/權(quán)限進行驗證用戶是否能進行操作;可以把Realm看成DataSource,即安全數(shù)據(jù)源。



作者:傳智播客JavaEE培訓學院
首發(fā):http://java.itcast.cn/

0 分享到:
和我們在線交談!