Shiro框架的運(yùn)行原理是通過一系列的組件和過濾器來實(shí)現(xiàn)權(quán)限控制和身份認(rèn)證。以下是Shiro框架的主要組件和運(yùn)行原理:
Subject(主體):Shiro的核心對象,代表當(dāng)前用戶。Subject可以是一個人或者任何其他的系統(tǒng)用戶。
SecurityManager(安全管理器):負(fù)責(zé)管理所有Subject,協(xié)調(diào)認(rèn)證和授權(quán)的過程。它是Shiro框架的核心,負(fù)責(zé)處理身份驗(yàn)證、授權(quán)、會話管理等功能。
Realm(數(shù)據(jù)源):用于驗(yàn)證用戶身份和獲取用戶的角色和權(quán)限信息。Realm主要負(fù)責(zé)從數(shù)據(jù)源中獲取身份驗(yàn)證和授權(quán)信息。
Authentication(身份驗(yàn)證):驗(yàn)證用戶的身份,通常通過用戶名和密碼進(jìn)行認(rèn)證。
Authorization(授權(quán)):根據(jù)用戶的身份和權(quán)限,確定用戶是否有權(quán)進(jìn)行某項(xiàng)操作。
Session(會話管理):Shiro框架通過會話管理功能,可以在不同的請求之間保持用戶的狀態(tài)。
Filter(過濾器):Shiro框架通過過濾器進(jìn)行訪問控制和權(quán)限驗(yàn)證。在請求到達(dá)服務(wù)器之前,過濾器會對請求進(jìn)行預(yù)處理,決定是否允許該請求訪問。
整個Shiro框架的運(yùn)行原理可以簡單概括為:在用戶發(fā)起請求時,Shiro框架首先通過過濾器對請求進(jìn)行攔截和預(yù)處理。然后,根據(jù)配置的Realm從數(shù)據(jù)源獲取用戶的身份驗(yàn)證和授權(quán)信息。接著,Shiro框架使用SecurityManager進(jìn)行用戶身份驗(yàn)證和權(quán)限控制。最后,Shiro框架將認(rèn)證和授權(quán)結(jié)果返回給應(yīng)用程序,應(yīng)用程序可以根據(jù)結(jié)果來決定是否允許用戶進(jìn)行相應(yīng)的操作。