TG-ADMIN 權限管理系統

項目簡介

該項目是一款基于 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的模型

  1. RBAC0:RBAC0是權限最基礎也是核心的模型,它包括用戶/角色/權限,其中用戶和角色是多對多的關系,角色和權限也是多對多的關系
  2. RBAC1:引用角色繼承關系即角色間有上下級關系
    1. 角色間的繼承關系可分為一般繼承關系和受限繼承關系。
    2. 一般繼承關系僅要求角色繼承關系是一個絕對偏序關系,允許角色間的多繼承。而受限繼承關系則進一步要求角色繼承關系是一個樹結構,實現角色間的單繼承,這種設計可以給角色分組和分層,一定程度簡化了權限管理的工作。

技術選型

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: 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713298.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713298.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713298.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Go語言語法基礎入門

目錄 一、開篇二、環境與配置三、Hello, World!四、變量與類型五、條件語句六、循環語句七、函數八、數組與切片九、結構體十、錯誤處理十一、結語 一、開篇 Go語言,作為近年來備受矚目的編程語言,以其高效、簡潔和強大的并發處理能力贏得了眾多開發者的…

面試數據庫篇(mysql)- 03MYSQL支持的存儲引擎有哪些, 有什么區別

存儲引擎就是存儲數據、建立索引、更新/查詢數據等技術的實現方式 。存儲引擎是基于表的,而不是基于庫的,所以存儲引擎也可被稱為表類型。 MySQL體系結構 連接層服務層引擎層存儲層 存儲引擎特點 InnoDB MYSQL支持的存儲引擎有哪些, 有什么區別 ? my…

nginx使用詳解--流控

Nginx可以通過實現流量控制(流控)來限制對服務器的訪問并保護其免受過載的影響,限流有以下幾種: 正常限制訪問頻率(正常流量) 突發限制訪問頻率(突發流量) 限制并發連接數 黑白名單配…

【QT+QGIS跨平臺編譯】之六十:【QGIS_CORE跨平臺編譯】—【錯誤處理:TEST_DATA_DIR】

文章目錄 一、TEST_DATA_DIR宏定義二、解決辦法2.1 方法一2.2 方法二一、TEST_DATA_DIR宏定義 代碼中較多地方引用了TEST_DATA_DIR 但是沒有對其進行定義。 下載的QGIS的目錄 qgis-3.22.8\tests\testdata 有對應的數據資源。 二、解決辦法 2.1 方法一 在 pro 文件的預定義項…

疊氮生物素,Biotin-azide ,含有生物素基團和疊氮基團

您好,歡迎來到新研之家 文章關鍵詞:生物素-疊氮,生物素疊氮,疊氮生物素,Biotin-azide ,Azide-Biotin,Biotin-N3,N3-Biotin,908007-17-0 一、基本信息 【產品簡介】&a…

jax可微分編程的筆記(9)

jax可微分編程的筆記(9) 第九章 案例:FAST主動反射面的形態調整 深度學習是可微分編程框架下的一個極為重要的使用場景。 模型,損失函數及優化算法是常見優化問題的3個組成部分。 其概念的外延并不僅僅局限于深度學習。優化問題中的模型 除了神經網絡,…

Tomcat部署及多實例

一、Tomcat簡介 1、簡介 Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。 當在一臺機器上配置好Apache 服務器&#xff0c…

java 基礎上(1)(核心知識搭配代碼)

前言 java的學習分為了上部分以及下部分進行學習,上部分就是對于java的基礎知識,面向對象上,面向對象下,異常操作,javaApi;下部主要是集合,泛型,反射,IO流,J…

BP 神經網絡原理

BP (Back Propagation) 神經網絡是1986年由 Rumelhart 和 McClelland 為首的科學家提出的概念,是一種按照誤差逆向傳播算法訓練的多層前饋神經網絡,是應用最廣泛的神經網絡。 1 BP 神經網絡的結構和傳播規則 BP神經網絡由 輸入層、隱含層(也…

【開源】JAVA+Vue.js實現天沐瑜伽館管理系統

目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 數據中心模塊2.2 瑜伽課程模塊2.3 課程預約模塊2.4 系統公告模塊2.5 課程評價模塊2.6 瑜伽器械模塊 三、系統設計3.1 實體類設計3.1.1 瑜伽課程3.1.2 瑜伽課程預約3.1.3 系統公告3.1.4 瑜伽課程評價 3.2 數據庫設計3.2.…

Qt-QThread與QProcess 線程與進程介紹、對比與使用

目錄 1 線程與進程的區別與聯系1.1 進程定義1.2 線程定義1.3 線程與進程的區別1.4 線程與進程的聯系2 QThread2.1 序言2.2 成員函數2.3 使用流程2.4 注意事項3 QProcess參考鏈接1 線程與進程的區別與聯系 線程和進程是操作系統中兩個重要的概念,它們在計算機系統中扮演著不同…

Java基于微信小程序的房屋租賃、租房小程序,附源碼

博主介紹:?程序員徐師兄、7年大廠程序員經歷。全網粉絲12w、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? 🍅文末獲取源碼聯系🍅 👇🏻 精彩專欄推薦訂閱👇…

邏輯漏洞(pikachu)

#水平,垂直越權,未授權訪問 通過個更換某個id之類的身份標識,從而使A賬號獲取(修改、刪除)B賬號數據 使用低權限身份的賬號,發送高權限賬號才能有的請求,獲得其高權限操作 通過刪除請求中的認…

cocos2d-lua:骨骼動畫的使用

骨骼動畫的使用 spine骨骼動畫的使用Armature骨骼動畫 spine骨骼動畫的使用 -- spine骨骼動畫導出的文件為:xxx.atlas,xxx.json,xxx.png 三個文件需同時存在 local spine sp.SkeletonAnimation:create("xxx.json", "xxx.atl…

消息隊列+更新DB極易引發的DB并發修改bug

背景 我們在生產系統中和其他系統進行交互時一般都會通過消息隊列來解耦生產者和消費者,然后通過每個使用方消費消息隊列的消息的方式來完成消息的消費,并且一般來說我們消費消息后極有可能會操作DB,不過這種方式如果處理不夠仔細&#xff0…

spark sql 轉換字符串數組成多列結構

背景 在平時使用spark sql分析數據時,特別是分析從mysql的表入倉的hive表時,我們會經常和字符串數組的列打交道,而且這種情況下我們一般都需要把一行字符串數組的行數據轉成多列的形式,我們看下怎么寫這個sql spark sql 轉換字符…

《More Effective C++》- 極精簡版 11-20條

本文章屬于專欄《業界Cpp進階建議整理》 繼續上一篇《More Effective C》- 極精簡版 1-10條。本章我會繼續講解我對11-20條的極精簡的理解。 11、不要讓destructor的異常流出 先保障不會拋出異常,如果不能,就使用try catch,這里的注意catch里…

計算機網絡(2)-----數據鏈路層

目錄 一.數據鏈路層的基本概念 二.數據鏈路層的功能概述 功能一:為網絡層提供服務。無確認無連接服務,有確認無連接服務,有確認面向連接服務。 功能二:鏈路管理,即連接的建立、維持、釋放(用于面向連接的服務)。 功能三:組幀 透明傳輸:…

ESU毅速丨不銹鋼材料為什么在金屬3D打印中的廣泛應用

不銹鋼是一種傳統且常見的材料,在金屬3D打印領域應用最廣。那么,為何不銹鋼材料在3D打印中如此受歡迎呢?以下是幾個關鍵原因。 卓越的工藝適應性 金屬3D打印技術,如直接金屬激光燒結(DMLS)和選擇性激光熔融…

Redis--持久化機制詳解

什么是redis持久化? Redis持久化是將內存的數據持久化到磁盤上,防止Redis宕機或者斷點的時候內存中的數據丟失,把內存中的數據寫入到磁盤的過程叫持久化。 Redis持久化的方式? RDB(Redis DataBase)&…