是什么?
Shiro是一個非常強大的、易於使用的、開源的、權限框架。它包括了權限校驗、權限授予、會話管理、安全加密等組件。
為什么要使用shiro?
如果你是需要設計RBAC(Role Based Access Control)基礎系統,需要編寫大量用於權限控制的代碼時。那么你需要使用Shiro。因為Shiro已經將RBAC系統大量的代碼封裝好,可以減少我們大量的工作量。
如:頁面的顯示的HTML控件根據登錄用戶的權限不同而不同。使用Shiro可以輕松解決。
結構圖
Authentication:權限校驗,每次操作校驗用戶是否有訪問權限
Authorization:授權,用戶登錄時,授予用戶對應的權限
Session Management:會話管理,用於記錄用戶的登錄狀態
Cryptography:加密,加密算法的實現(SHA、MD5)
web Support:對Web項目的支持,Shiro的標簽!!
訪問流程圖
- 首先應用訪問(可以使用遠程調用,可以是Web請求等),Shiro通過一個Subject對象來標識當前訪問的身份。這句話告訴我們,第一次訪問的時候,Shiro肯定會創建一個Subject對象標簽當前請求(用戶)的身份。
- SecurityManger容器創建一個Subject對象驗證請求的參數,SecurityManager的作用是統一管理Subject。這句話意味着,一個SecurityManager對象管理多個Subject的對象。
- Subject通過SecurityManger獲得操作當前用戶的權限,在啟動的那一刻,SecurityManger就會加載shiro.ini權限配置文件,在用戶登錄成功后,可以根據shiro配置的信息,獲得用戶對應的權限。
- shiro配置:是一個權限控制信息文件,里面必須包括用戶的驗證信息,權限的信息