三個核心對象:
2、架構原理
2.1 Subject
首先將一個用戶抽象爲一個Subject對象,通過調用對象裏的方法來實現對用戶的認證、授權、會話、緩存等等的操作。
比如:subject.hasRole()、subject.checkPermission()等等。
2.2 SecurityManager
這是一個核心組件,Subject調用的操作,基本都由SecurityManager去處理並作出相應的迴應,所以正如圖中一樣,SecurityManager管理着很多功能模塊,SecurityManager是個接口,每一個功能模塊都對應着一個自己的Manager,這樣使得shiro框架的代碼結構清晰有條理。
具體的認證器、授權器、會話管理器等等這些組件,都有自己的默認實現、默認配置。
2.3realm:是直接跟數據庫打交道的!Realm:域,Realm 充當了 Shiro 與應用安全數據間的“橋樑”或者“連接器”。
Shiro 中的 Realm
項目的shiro配置: