千家信息网

Matrxi-Web的权限设计是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Matrxi-Web的权限设计是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Matrxi-Web权限设计对于一个后
千家信息网最后更新 2026年11月01日Matrxi-Web的权限设计是什么

Matrxi-Web的权限设计是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Matrxi-Web权限设计

对于一个后端系统来说,权限是基础设施,是安全保障。没有权限,系统可能随时面临各种风险,所以权限设计对后端系统来说至关重要。在Javaweb开发中,有很多权限开发的框架,比如shrio、Spring security,但是都比较重量级。作为一个后端管理系统来说,用这样的权限开发框架会拖慢开发进度。所以在这个项目中,我写了一个更简单的权限控制框架,使用很简单。

权限设计思路

在Matrxi-Web项目中,请求需要携带Token,请求经过Filter的时候(实际项目是使用Spring MVC的HandlerInterceptor),会判断该请求Url是否有Token。如果有Token,解析Token获取用户信息,如果解析Token失败,则进入白名单判断的逻辑,如果解析成功,则请求通过。如果请求不携带Token或者解析Token失败,则判断是否Url白名单里(比如登录接口,swagger文档等接口),如果请求不在url白名单内,则提示无权限访问。

在Filter层初步判断,如果请求通过,则请求进入具体类的方法里,比如Controller的方法。如果类方法加上了自定义的注解@HasPermission,则该类在加载的时候会生成一个aroud类型的切面(即spring的aop),在执行具体类的方法前,会判断该用户是否具有对该方法的调用权限,从而起到权限控制的作用。

RBAC

在权限控制数据层面,最常用的做法是RBAC(Role-Based Access Control),即基于角色的权限的控制。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

RBAC 认为授权实际上是Who 、What 、How 三元组之间的关系,也就是Who 对What 进行How 的操作,也就是"主体"对"客体"的操作。

  • Who:是权限的拥有者或主体(如:User,Role)。
  • What:是操作或对象(operation,object)。
  • How:具体的权限(Privilege,正向授权与负向授权)。

在Matrix-Web项目中,也是使用了经典的RBAC,即每个用户拥有一个或多个角色,角色赋予具体的菜单操作权限。Martrix-Web的数据库设计标如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ziItvtN3-1590667416151)(https://static.javajike.com/img/2020/05/matrix/matrix-web009.jpg)]

用户Id(user_id)和角色Id(role_id)绑定,角色Id(role_id)和menu_code(菜单编码绑定),所以在创建用户的时候需要录入用户的角色,而角色又需要绑定权限。前端界面录入权限按钮,展示图如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4S0rbHyf-1590667416151)(https://static.javajike.com/img/2020/05/matrix/mw010.jpg)]

用户绑定角色,展示图如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aRbyW5HT-1590667416152)(https://static.javajike.com/img/2020/05/matrix/mw011.jpg)]

Token设计

在系统设置中,有一个重要的东东是Token,Token代表了用户,几乎所有的请求都需要携带Token。那么Token是怎么来的呢?它是根据用户名生成的。那么什么情况会生产呢?用户登录成功后,生成Token,返回给浏览器,浏览器存储在LocalStorage里面,后续的所有请求必须携带Token。这样根据Token,服务端就能知道每个请求的用户是谁,从而判断该请求的用户是否有权限。

上面的几个小结讲述了Matrix-web整体实现的权限控制的思路。现在来做一下总结:

  • 首先,用户需要登录,填用户名、密码,后端接收到登录请求,进行用户、密码的校验,校验成功后则根据用户名生成Token,并返回给浏览器。
  • 浏览器收到Token后,会存储在本地的LocalStorge里。
  • 后续浏览器发起请求时都携带该Token,请求达到后端后,会在Filter进行判断,首选判断是否为白名单url(比如登录接口url),如果是则放行;否则进入Token验证。如果有Token且解析成功,则放行,否则,返回无权限访问。
  • Filter判断后,请求达到具体的Controller层,如果在Controller层上加上了权限判断的注解,则生成代理类。代理类在执行具体方法前会根据Token判断权限。
    • 取出用户的Token并解析得到该请求的userId,根据userId在从存储层获取用户的权限点。权限控制是RBAC这种方式实现的。
    • 获取到用户权限点后,获取权限判断的注解的权限信息,看用户权限点是否包含权限注解的权限信息,如果包含,则权限校验通过,否则则请求返回无权限。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

权限 用户 角色 设计 图片 方法 控制 浏览器 系统 浏览 生成 登录 成功 名单 注解 项目 开发 信息 建议 接口 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技网 科技金融是不是互联网金融 互联网金融监管科技数据 互联网巨头反垄断金融科技 互联网科技英文 有马互联网科技 互联网科技论坛 互联网科技公司介绍 重庆互联网医院沙龙医盟信息科技 恒生互联网科技指数跳水 深圳育鹏互联网科技有限公司招聘 996高科技互联网公司 世界互联网领先科技成果获奖 济南有互联网科技公司吗 滨湖区互联网智能科技产品有哪些 上海互联网科技公司ppt 九思连强互联网电子科技有限公司 珠海东科互联网科技有限公司 广州智享互联网科技 北京互联网科技类企业分布 华服互联网科技靠谱吗 深圳科技互联网 天津摩尔互联网科技 广州恒生互联网科技有限 互联网和黑科技的看法 深圳育鹏互联网科技有限公司招聘 萌小萌互联网科技河南有限公司 吉林省码上互联网科技电话 容联科技互联网电商 山东亿川互联网科技有限责任公司
0