項目簡介
該項目是一款基于 SpringBoot + Vue2 + Jwt + ElementUi的 RBAC模型管理系統。
主要以自定義攔截器和jwt結合進行權限驗證
通過自定義指令實現按鈕級別權限,使用經典的RBAC模型
什么是RBAC?
1、RBAC模型概述
RBAC模型(Role-Based Access Control:基于角色的訪問控制)模型是20世紀90年代研究出來的一種新模型,但其實在20世紀70年代的多用戶計算時期,這種思想就已經被提出來,直到20世紀90年代中后期,RBAC才在研究團體中得到一些重視,并先后提出了許多類型的RBAC模型。其中以美國George Mason大學信息安全技術實驗室(LIST)提出的RBAC96模型最具有代表,并得到了普遍的公認。
RBAC認為權限授權的過程可以抽象地概括為:Who是否可以對What進行How的訪問操作,并對這個邏輯表達式進行判斷是否為True的求解過程,也即是將權限問題轉換為What、How的問題,Who、What、How構成了訪問權限三元組;
2、RBAC的組成
在RBAC模型里面,有3個基礎組成部分,分別是:用戶、角色和權限。
RBAC通過定義角色的權限,并對用戶授予某個角色從而來控制用戶的權限,實現了用戶和權限的邏輯分離(區別于ACL模型),極大地方便了權限的管理:
- User(用戶):每個用戶都有唯一的UID識別,并被授予不同的角色
- Role(角色):不同角色具有不同的權限
- Permission(權限):訪問權限
- 用戶-角色映射:用戶和角色之間的映射關系
- 角色-權限映射:角色和權限之間的映射
3,RBAC的模型
- RBAC0:RBAC0是權限最基礎也是核心的模型,它包括用戶/角色/權限,其中用戶和角色是多對多的關系,角色和權限也是多對多的關系
- RBAC1:引用角色繼承關系即角色間有上下級關系
- 角色間的繼承關系可分為一般繼承關系和受限繼承關系。
- 一般繼承關系僅要求角色繼承關系是一個絕對偏序關系,允許角色間的多繼承。而受限繼承關系則進一步要求角色繼承關系是一個樹結構,實現角色間的單繼承,這種設計可以給角色分組和分層,一定程度簡化了權限管理的工作。
技術選型
1、系統環境
- Java EE 8
- Servlet 3.0
- Apache Maven 3
- Mysql 5.5
- nodejs 14.21.3
2、主框架
- Spring Boot 2.4.2
- Jwt
- Hutool
- commons-pool2
- poi-ooxml
- Redis
- Swagger
- fastjson
- commons-pool2
- Mybatis-Plus-Generator
3、持久層
- Apache MyBatis -Plus 3.5.x
- Alibaba Druid 1.2.x
4、視圖層
- Aplayer
- 一言
- mavon-editor
- echarts
- Element ui
- Vue2
內置功能
- 歡迎頁:介紹系統技術選型和統計
- 文章管理:發布和修改文章,以及文章分類。
- 所有文章
- 文章分類
- 文章標簽
- 系統管理:整個系統的管理包括用戶菜單
- 用戶管理:用戶是系統操作者,該功能主要完成系統用戶配置。
- 菜單管理:配置系統菜單,操作權限,按鈕權限標識等。
- 角色管理:角色菜單權限分配、設置角色按機構進行數據范圍權限劃分。
- 字典管理:對系統中經常使用的一些較為固定的數據進行維護。
- 文件管理:對系統上傳文件進行管理。
- 系統接口:根據業務代碼自動生成相關的api接口文檔。
- 連接池監視:監視當期系統數據庫連接池狀態,可進行分析SQL找出系統性能瓶頸。
動態路由配置
//該文件專門用來創建和管理整個應用的路由器
import Vue from "vue";
import VueRouter from "vue-router"
?
Vue.use(VueRouter)
//地址和組件的對應關系
const routes = [ { path: '/login', name: 'login', meta: { title: '登錄' }, component: