Shiro許可權模型以及許可權分配的兩種方式

2022-08-23 04:12:10 字數 810 閱讀 4583

2. 許可權模型設計

主體(user、password)

許可權(許可權名稱、資源id)/資源(資源名稱、訪問url)

角色(角色名稱)

角色和許可權關係(角色id、許可權id)

主體和角色關係(主體id、角色id)

3. 許可權分配有兩種  ​

​3.1 基於角色的許可權控制

缺點:在經常變更角色許可權的管理系統中無法做到動態管理,因為使用者主體在整個系統中都是活動物件。

舉個栗子:

技術總監需要檢視使用者資料,而使用者資料只有運營總監才有許可權看,那麼此時需要修改**了:

if (user.ifhasrole('技術總監') || user.ifhasrole('運營總監')) {

// 訪問資料監控

// 訪問伺服器資訊

所以說這樣的方式不利於系統的擴充套件,即可擴充套件性太弱。

當然如果系統可以讓人身兼多隻,那麼多選角色即可,這個使用者同時有技術總監以及運營總監的身份。

但是如果涉及到hr總監甚至實施總監的功能,那麼這個使用者就同時有4個角色,這樣真的好嗎?

​3.2 基於資源的許可權控制

資源即功能,也就是當前系統所包含的所有功能模組,這些是不變的

那麼這樣的話我們只有針對當前登入的使用者,增加相應的資源許可權即可,沒有必要再去維護**,減少了程式的**維護。因為資源在整個系統中是靜態物件。

*增減資源許可權需要另開乙個許可權資源分配的模組,在這個模組中設定使用者的資源許可權即可,一般由頂級賬戶來操作。

shiro之許可權分配

編寫html 登入後的鏈結 th href 需要有admin角色的功能a th href 需要有admin角色的功能test01a th href 需要有admin角色的功能adda th href 需要有user角色的功能a 編寫controller nopermission public str...

Shiro 許可權標籤 許可權註解

在使用shiro標籤庫前,首先需要在jsp引入shiro標籤 taglib prefix shiro uri shiro authenticated 登入之後 shiro notauthenticated 不在登入狀態時 shiro user 使用者在登入之後或rememberme時 shiro g...

shiro重新整理許可權

近期做的那個專案購買之後需要重新整理許可權,這個之前沒做過,通過檢視與找到了動態重新整理許可權的方式,加入我的專案如下進行許可權修改 realmsecuritymanager rsm realmsecuritymanager securityutils.getsecuritymanager acco...