通用权限解决方案

前言:

目前市面上有一些知名的权限框架有shiro和spring security。 正常情况下,直接用框架没什么问题。方便,快速,但是需要一定的学习成本。

用框架还有一个缺点是不好定制,因为每个产品的业务都不太一样。要控制权限都不太一样,此时如果硬是套用框架,就会很别扭。

通用权限解决方案

首先搞清楚权限拦截对象:用户

还有拦截什么,拦截的点像菜单,路由,接口,按钮之类的。

为什么要对这些做拦截?

还不是为了控制用户对资源的访问嘛

那我们一般通过什么操作拦截用户权限

像配置用户权限,登录时读取权限,在访问某个按钮或页面之类的去拦截等等都是可以操作的

如果只是对用户和资源做配置其实是不太好的

假设

100用户 和100资源就是100x100就是10000次,这种只适合小型项目

如果在中间加上一个角色,就是三个概念:用户,角色,资源

100用户 x 2角色 + 2角色 x 100资源

这是一种比较经典的权限管理设计

在配置时

用户管理:用户表,用户管理界面

资源配置:资源表,资源配置界面

角色管理:用户表,角色管理界面

用户角色关联配置:用户角色关联表,复用角色管理界面

用户资源关联配置:角色资源关联表,复用角色关联界面

在读取时

用户权限的读取:用户登录的时候,读取该用户的所有权限。

拦截时

用户操作业务时,进行拦截

前端界面:菜单,路由,按钮

后端接口:接口,gateway的过滤器

为什么前端拦截后,后端还要拦截

因为前端代码可以修改,有漏洞

权限初始化

下面附上一个平时做的一个关于权限业务流程图

 

 

posted @   开源遗迹  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示