許可權驗證框架Shiro學習(二)

2021-07-06 08:10:10 字數 2214 閱讀 8691

shrio授權,驗證主體subject對當前操作有沒有該許可權

授權,有三種方式

例如,對goods/query的訪問需要[good:query]許可權

goods/query/** = perms[goods:query]

上一節也說了,這個是通過permissionauthorizationfilter進行過濾,這樣配置好了,怎麼攔截呢,同樣是在我們的realm中,realm中有兩個方法,乙個是認證,認證就是根據token的usercode查詢使用者基本資訊,密碼,選單,等資訊構造乙個******authenticationinfo的bean返回,剩下的就是shiro去驗證了

還有乙個方式是授權,該方法主要是返回改使用者所擁有的許可權,剩下的就是shrio根據上面xml的配置,看請求資源的許可權是否返回的許可權列表中,

// 授權

@override

protected authorizationinfo dogetauthorizationinfo(principalcollection principals)

}******authorizationinfo ******authorizationinfo = new ******authorizationinfo();

******authorizationinfo.addstringpermissions(permissions);

return ******authorizationinfo;

}

這樣就完成了授權驗證,如果沒有該許可權,則跳轉到我們xml定義的unanthorizationurl的頁面,但是這樣授權認證有個缺陷就是每個請求都要配置,這樣比較麻煩,而且每次都要訪問資料庫,就是都要訪問上面**,而該**又訪問資料庫,這樣對效能肯定也會有影響,所以下面的配置方式,要解決上面的配置麻煩,效能問題。

第二種:在方法上加註解

shrio註解方式是比較推薦的,而且配置也很簡單

首先在我們的mvc配置檔案中

開啟spring mvc對類的**,因為我們要在@controller層的方法上加shrio的註解,@controller是類,不是介面,所以要開啟

的配置是把shrio的管理也交給spring管理

例項**:

@requirespermissions("item:query") // shiro註解

}我們只要在該方法上加上個註解,上面的方法表示該方法需要item:query的許可權,很簡單方便,功能等同於上面那種方式在xml裡要加,但很簡單

下面我們要解決下快取的問題:

快取是為了解決我們在驗證授權的時候,頻繁訪問資料庫的情況

配置:

1、新建shiro-cache.xml

3、在securitymanager引入cachemanager bean

這樣就第一次訪問某個請求的時候才會到自定義realm的授權方法,同時還要注意快取的清除

4、清除快取

在自定義的realm重寫

public void clearcached()
在需要清除呼叫的時候清除快取,一般是在許可權修改後呼叫

第三種 jsp標籤

在jsp頁面引入標籤庫

<%@ tagliburi="" prefix="shiro" %>

標籤名稱    標籤條件(均是顯示標籤內容)

登入之後

不在登入狀態時

使用者在沒有rememberme時

使用者在rememberme時

在有abc或者123角色時

擁有角色abc

沒有角色abc

擁有許可權資源abc

沒有abc許可權資源

顯示使用者身份名稱

顯示使用者身份中的屬性值

這個類似我們的el表示式上的邏輯判斷,比如

擁有許可權

日常開發中可以用註解 加 標籤的方式結合使用

框架學習 shiro許可權管理框架基礎

許可權管理實現使用者對系統資源訪問的控制,主要包括兩個部分,認證和授權。認證部分即登陸,有資格進入系統。授權即進入系統之後,只有你被授權的資源你才有資格訪問。舉個例子,教務管理系統,老師的賬號登陸之後,可以檢視所有同學的成績,並進行修改。但是學生的賬號登陸之後,只能看到自己的成績,並不能進行修改等操...

shiro許可權驗證標籤

例項 spring shiro.xml 1 2 3 admin repairtype index roles role admin admin user roles role admin admin complaint list roles role service,role admin jsp頁面...

shiro許可權驗證標籤

例項 spring shiro.xml 1 2 3 admin repairtype index roles role admin admin user roles role admin admin complaint list roles role service,role admin jsp頁面...