博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通用权限解决方案介绍
阅读量:783 次
发布时间:2019-03-24

本文共 776 字,大约阅读时间需要 2 分钟。

通用权限设计

目前一些知名的权限框架有Shiro和Soring Security。正常情况,直接使用框架没什么问题,方便,快速,但是需要一定的学习成本,得学习如何使用这些框架。

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

通用权限的设计解决方案

权限拦截的对象:用户

权限拦截的点:菜单(控台左侧的菜单),路由,接口,按钮

控制用户对资源的访问

权限的操作:配置,读取,拦截

100用户 × 100资源(直接用户和资源做关联来控制权限,适合小型的项目,简单,快速)

三个核心概念:用户 角色 资源

100用户 × 2个角色 + 2个角色 × 100资源(经典的权限管理设计:用户和角色关联,角色和资源关联)

功能点:

配置
用户管理:用户表,用户管理界面,已完成
资源配置:资源表,资源配置界面
角色管理:角色表,角色管理界面
用户角色关联配置:用户角色关联表,复用角色管理界面
角色资源关联配置:角色资源关联表,复用角色管理界面
(两张关联表的配置,可以单独设计界面,也可以直接做到角色管理界面里)
用户权限的读取:用户登录的适合,读取该用户的所有权限。(登录时,通过用户角色关联表,可以知道当前登录用户的角色,再通过角色资源关联表就可以查到当前用户所有的资源)
读取
用户权限的读取:用户登录的时候,读取该用户的所有权限。
拦截
用户操作业务时,进行权限拦截
前端界面:菜单,路由,按钮,hidden disabled
后端接口:接口,gateway的过滤器
权限初始化
系统上线时,要初始化这五张表的数据。初始有一个用户能登录,能管理角色,管理资源,分配权限。

疑问:前端已经对菜单和按钮做拦截,用户不能操作了,为什么还要对接口做拦截?

前端是可以修改的,这样会不安全。

转载地址:http://eprkk.baihongyu.com/

你可能感兴趣的文章