基於shiro的許可權管理-002授權
授權
上一篇中也介紹了什麼是授權,就是某一個人是否有資格去檢視某一個頁面或者某一個按鈕。
在授權中,必須使用到的概念:subject 主體,resource 資源,permission 許可權,role 角色。
subject也就是我們的使用者,下面統一用使用者代替主體的這個說法。
resource:資源,在我們系統中,也就是某一個按鈕,或者某一個頁面。
permission:許可權,在shiro中是授權單位,我們可以通過shior配置某一個使用者在系統中是否有許可權訪問某一個資源。這就是三者的關係:
subject是不是有permission去看到某一個resource
role:角色,角色是許可權的集合,我們給使用者賦予許可權的時候,不是說一個一個的賦予,而是賦予使用者一個角色,就是說,這些人登入後,根據自己的擁有的角色間接的來擁有訪問資源的許可權。為什麼這麼設計呢?這是有一個著名的名稱:RBAC,resource-based access control 基於資源的訪問控制。
授權方式
1.java程式碼中if..else…來判斷,這個我們不做解釋,因為在開發中真沒人這麼玩,否則會被罵的。
2.基於註解的授權
@requiredPermission(“search:admin”) 如果沒有許可權,那麼就丟擲異常。
3.頁面標籤,這個通常在按鈕顯示的邏輯上使用。
下面我們開始一個真實的案例來說明授權的操作流程。在這個案例開始,我們需要先建立5張表,來儲存我們使用者的資料。
分別是使用者表:user_table,資源表:resource_talbe;許可權表:resource_table,使用者角色關係表:user_role_relation,許可權資源關聯表:resource_premission_relation