RBAC(基于角色的权限访问控制)
第一節.RBAC簡介
4.1 不同用戶登錄后看到的菜單是不一樣的.
4.2 不同用戶看到的頁面效果不一樣
4.2.1 有的用戶可以看見”授權”按鈕,或有的用戶可以看見”刪除”按鈕
4.3 不同用戶完成的功能是不一樣的.
4.3.1 有的用戶可以執行刪除,有的可以執行新增.
5.1 如何設計數據庫中表
5.2 如何根據數據庫完成項目
6.1 根據RBAC設計思想,設計出來的方案是非常靈活的.
第二節.傳統項目數據庫設計方案
[1] 數據庫原型及其問題.
[2] 根據上面數據庫表設計方案帶來的問題:
2.1 新建一個用戶時:
2.1.1 在用戶表中添加一條數據.
2.1.2 在關聯表中添加N條數據
2.1.3 每次新建一個用戶需要添加:1+N(關聯幾個)條數據
第三節.RBAC設計方案(簡單版)
2.1 設定好在某些情況下哪些菜單需要被關聯:
2.1.1 例如:管理員可以看到所有菜單
2.1.2 例如:銷售總監可以看到”銷售管理”菜單.
2.1.3 例如:普通員工只能看見系統公告中公告查看
2.2 現實生活中的職位對應1個或多個數據庫中的角色.
3.1 以后每次新建用戶時
3.1 在用戶表中添加一個數據
3.2 在用戶和角色關聯表中添加1條或n條數據.
第四節. RBAC 的代碼示例:
需求:
使用RBAC數據庫設計思想,完成不同的用戶登錄
系統后顯示不同的菜單。
要求:
用戶:張三和李四
菜單:
用戶管理
用戶查詢
增加用戶
班級管理
班級查詢
增加班級
查看通告
系統設置
數據庫Sql語句
main.jsp主頁面的代碼示例
MenuController的代碼示例
MenuServiceImpl的代碼示例
MenuMapper的代碼示例
第五節.RBAC 詳細版本
1.1 權限表:平時小型項目中可以省略.
1.2 用戶組表:對用戶進行分組,每個用戶組綁定多個角色,把用戶放入到用戶組后,具有對應多個角色.
1.3 角色組:角色組對應多個角色,用戶組和角色組
1.4 完成訪問控制時,需要對什么類型表進行訪問控制(在簡單版中)把需要控制的內容和角色進行直接關聯.
1.4.1 詳細版中是跟權限進行關聯.
第六節.URL權限控制
1.1 例如:在瀏覽器中直接通過URL訪問控制器.
2.1 頁面元素可見: 在頁面能不能看到某些內容
2.2 URL權限指:在瀏覽器地址欄直接訪問
3.1 添加URL表.
3.2 URL表和角色表進行關聯.
3.3 在filter或攔截器中添加權限驗證.
4.1 數據庫設計
i. 在當前rbac案例中新增一張url權限信息表
表名:t_url
作用:存儲需要被管理的url地址信息。
字段:編號,url地址
ii. 在當前rbac案例中新增一張角色和url權限表的關聯表
表名:r_url
作用:表名url和角色之間的關聯關系
字段:角色ID,url的編號
iii. Sql語句示例:
4.2 代碼實現
實現思路:
在項目增加過濾器,在過濾器中判斷當前請求的
url地址和用戶具備的操作的URL地址是否一致。
如果一致則放行,不一致則攔截,并提示其權限不足。
過濾器代碼示例:
總結
以上是生活随笔為你收集整理的RBAC(基于角色的权限访问控制)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果笔记本电脑哪款配置性能最好?
- 下一篇: i7苹果笔记本配置怎样?