通用权限解决方案
前言:
目前市面上有一些知名的权限框架有shiro和spring security。 正常情况下,直接用框架没什么问题。方便,快速,但是需要一定的学习成本。
用框架还有一个缺点是不好定制,因为每个产品的业务都不太一样。要控制权限都不太一样,此时如果硬是套用框架,就会很别扭。
通用权限解决方案
首先搞清楚权限拦截对象:用户
还有拦截什么,拦截的点像菜单,路由,接口,按钮之类的。
为什么要对这些做拦截?
还不是为了控制用户对资源的访问嘛
那我们一般通过什么操作拦截用户权限
像配置用户权限,登录时读取权限,在访问某个按钮或页面之类的去拦截等等都是可以操作的
如果只是对用户和资源做配置其实是不太好的
假设
100用户 和100资源就是100x100就是10000次,这种只适合小型项目
如果在中间加上一个角色,就是三个概念:用户,角色,资源
100用户 x 2角色 + 2角色 x 100资源
这是一种比较经典的权限管理设计
在配置时
用户管理:用户表,用户管理界面
资源配置:资源表,资源配置界面
角色管理:用户表,角色管理界面
用户角色关联配置:用户角色关联表,复用角色管理界面
用户资源关联配置:角色资源关联表,复用角色关联界面
在读取时
用户权限的读取:用户登录的时候,读取该用户的所有权限。
拦截时
用户操作业务时,进行拦截
前端界面:菜单,路由,按钮
后端接口:接口,gateway的过滤器
为什么前端拦截后,后端还要拦截
因为前端代码可以修改,有漏洞
权限初始化
下面附上一个平时做的一个关于权限业务流程图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报