shiro實現基於角色的許可權授權

2021-08-02 00:13:16 字數 995 閱讀 7834

shiro除了登陸驗證之外,還有一點就是對系統進行相應的許可權操作,而基於角色的授權是目前最通用的做法,也是符合業務邏輯的。具體思路如下:

1.資料庫設計好許可權表,角色表(許可權標識是自定義的,shiro會根據**裡面相應的許可權對系統做出管理)

2.將許可權表與角色表做外來鍵關聯(多對一),使用者表與角色表做外來鍵關聯

3.在自定義的realm裡實現授權

開啟shiro註解的配置如下:

對資料庫的建表等操作就不給出來了,這點需要自己實現,下面就是授權**:

大體流程是:先從資料中查詢出該使用者的對應角色,然後通過角色找出對應的許可權,然後再通過add方法設定角色和許可權

protected authorizationinfo dogetauthorizationinfo(principalcollection principalcollection) 

roles.add(crouser.getcrorole().getrolename());

info.addroles(roles);//設定角色

info.addstringpermissions(permissions);//設定許可權

return info;

}

下一步就是在controller層的方法中新增對應的許可權註解,這樣才能讓上面的**有效從而達到對系統許可權控制的目的

@requirespermissions("user:select")//對應許可權註解

public string listcoupons()

接著就可以進行測試操作了,當無許可權的時候,會丟擲乙個無許可權異常,使用者的操作不會有任何效果。

注:註解只是其中一種方式,還有直接使用if-else判斷和shiro標籤的方式。建議學習shiro的程式猿去看看註解和shiro方式,並且這兩種方式可以一起用,達到自己所設想的效果。

基於角色的許可權控制

asp forums中基於角色的許可權控制 asp.頁面如何控制頁面依據不同使用者許可權有不可見 可見 編輯 三種操作許可權 做過許可權管理和想做許可權管理的人進來 附我的思路 懇求許可權分配的例子 高分求使用者許可權管理 c 或演算法 請問在 artclient應用中,如何做到科學的身份驗證和許可...

基於角色的許可權設計

基於角色的許可權設計 一 在任何系統中,許可權設計是最基礎的東西,本文給出乙個基於角色的許可權設計的循序漸進的設計方案。在許可權系統中,功能 許可權 是最小的單位,比如起草新聞 編輯新聞 審核新聞 刪除新聞等,而角色是一類功能的集合,比如新聞編輯這個角色,他可能有起草新聞 編輯新聞等功能集合,而責任...

基於角色的許可權設計

在任何系統中,許可權設計是最基礎的東西,本文給出乙個基於角色的許可權設計的循序漸進的設計方案。在許可權系統中,功能 許可權 是最小的單位,比如起草新聞 編輯新聞 審核新聞 刪除新聞等,而角色是一類功能的集合,比如新聞編輯這個角色,他可能有起草新聞 編輯新聞等功能集合,而責任編輯他可能就有更多的許可權...