OverallAuth权限管理系统,超精度权限划分(第一篇:功能级权限)。
一、前言
随着信息化系统的普及,信息安全愈发的重要,企业对于信息的保密程度越来越高。程序员面临的压力开始逐步递增。
而作者作为“码农”,也深深的体会到这一点。
随着公司业务的发展,作者所在公司的权限系统,已经完全不能满足公司的发展需求,急需做一个精度更高的权限划分系统。
根据分析公司传统的权限设计模式(ACL、RABC)已经不适合在做二次开发。于是作者就开始着手规划一套全新的权限管理系统,OverallAuth因此诞生。
# 开箱即用
码友可以放心大胆的使用,本项目的前后端,都是作者从0到1完全独立搭建。
**如果你不想花时间写一套权限系统,那么就下载使用吧**
说明:数据库文件在qq群:801913255,因为更新频繁,就不放在这里了
二、️OverallAuth统一权限分发中心
在解决公司权限分配的问题后,我决定把OverallAuth系统改造下,做成一个开源的权限管理系统,给与需要帮助的人提供思路和解决方案。
在不断的完善下,OverallAuth统一权限分发中心,可以支撑多公司、多系统的权限分发系统。️它简单、高效、易懂️,新手也能轻松上手。
话不多说,我们来大致看下,OverallAuth统一权限分发中心具备哪些权限功能。

三、JWT 鉴权
jwt不比多说,相信大多数人都懂,是一种安全的传输协议标准,在OverallAuth中,作者使用它来用户认证和鉴权。
四、角色权限
区别于传统的角色权限(ACL),作者在设计时,把角色分了等级(就像树形结构),上级角色会继承下级角色的所有权限。
这样成功的避免了随着用户增多,角色也出现暴增、冗余、错乱的情况。大大降低了维护成本。
如下图所示:

到这里,可能有人会问,为什么不直接勾选【用户管理员】、【普通用户1】、【普通用户2】。当然这样确实可以,但数据库存储关系会多出不少数据,而且会影响之后的权限划分(特别是数据行、数据列等权限)。
不过在这里,确实会存在一个问题。因为角色的继承关系,勾选【用户管理员】后,会继承【普通用户1】、【普通用户2】角色权限它属于强制行为。那么当【用户管理员】不需要【普通用户2】的权限时,这种问题将不能避免。这个问题作者已经规划如何解决。
五、菜单权限
在设计上,菜单权限依然是通过角色来确定。如下图:

六、菜单按钮权限
为了精准的权限划分,在OverallAuth中,按钮分为2中类型:即【菜单按钮】和【数据按钮】
如下图所示:

当一个角色被赋予某一个菜单时,并不意味着这个菜单中的所有数据和按钮都能查看和使用。我们还需要进行颗粒级别的授权。菜单按钮就是其中之一。
如何分配【菜单按钮权限】,如下图

需要源码的,关注公众号,发送【权限】获取源码
以上就是本篇文章的全部内容,感谢耐心观看
后端WebApi 预览地址:http://139.155.137.144:8880/swagger/index.html
前端vue 预览地址:http://139.155.137.144:8881
关注公众号:发送【权限】,获取源码
有兴趣的朋友,请关注我微信公众号吧(*^▽^*)。

关注我:一个全栈多端的宝藏博主,定时分享技术文章,不定时分享开源项目。关注我,带你认识不一样的程序世界
OverallAuth权限管理系统,超精度权限划分(第一篇:功能级权限)。的更多相关文章
- Asp.Net Core 项目实战之权限管理系统(7) 组织机构、角色、用户权限
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(5) 用户登录
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(8) 功能菜单的动态加载
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- SpringSecurity权限管理系统实战—四、整合SpringSecurity(上)
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(0) 无中生有
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(6) 功能管理
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
随机推荐
- 阿里云OSS前端直传
注意: oss直传request与global对象冲突 <script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-6.9.0.m ...
- 查阅相关资料, 了解什么是scrum中的3355?
在Scrum中,3355是一个用于描述其核心组成部分的模型,具体包括三个核心角色.三个工件.五个关键事件和五个价值观.下面是对Scrum中3355的详细解释: 三个核心角色 产品负责人(Product ...
- Fiddler的安装和使用教程(详细)
一.安装 1.fiddler工具下载网址:http://www.telerik.com/download/fiddler. 2.运行 FiddlerSetup.exe一键完成安装. 3.安装成功后点击 ...
- Linux系统的一些基本文件和目录管理命令
pwd:查看当前目录所在位置. ls:查看当前目录下的文件和目录.例如我们查看根目录下的文件和目录: (注:蓝字的是目录,白字的是文件,绿字的是可执行的文件或装有可执行文件的目录,红字是压缩包) 如果 ...
- 工具 | MemShellParty
0x00 简介 MemShellParty是一键常见中间件框架内存马生成工具.一键生成常见中间件框架内存马,让内存马测试变得简单高效,打造内存马的全方位学习平台 下载地址: MemShellParty ...
- SQL 优化 - 多层嵌套逻辑先行
近段时间就是忙得不亦乐乎, 一个人搞项目, 中途几经崩溃, 一个是业务方案有问题, 被带跑偏了整整一周, 最后尝试去挑战, 才重新回到正轨. 然后就是自己搞崩盘, sql 这块的处理, 嵌套写太深了, ...
- ISCTF的MISC复现
1. 小蓝鲨的签到02 随波逐流 识别问题加上IS即可 2. 数字迷雾:在像素中寻找线索 还是随波逐流 加个} 3. 小蓝鲨的签到01 关注公众号发送ISCTF2024即可 4. 小蓝鲨的问卷 答完得 ...
- 实现一个前端动态模块组件(Vite+原生JS)
1. 引言 在前面的文章<使用Vite创建一个动态网页的前端项目>中我们实现了一个动态网页.不过这个动态网页的实用价值并不高,在真正实际的项目中我们希望的是能实现一个动态的模块组件.具体来 ...
- Win32汇编学习笔记05
定位关键点3种方法: 过程函数 api 字符串 但是不确定用要哪一种方法,可以3种方法都用一下,因为在不同的程序,实用的方法是不一样的 窗口程序看控件信息 1.通过OD去看 还可以用 spy ++ 查 ...
- Maven中配置maven-compiler-plugin 插件和jdk 17版本
如何修改Maven工程的JDK版本 修改项目中的pom.xml文件,添加maven-compiler-plugin插件3.8.1版本,指定JDK的编译版本为Java 17,简约版配置信息如下: < ...