Shiro 权限设计,RBAC3基础上增加客服设计

JSON 2018-04-02 10:55:43 36432

shiro demo下载

Shiro + SSM(框架) + Freemarker(jsp)讲解的权限控制Demo,还不赶快去下载?




在我们平常的权限系统中,想完全遵循  RBAC  模型是很难的,因为难免系统业务上有一些差异化的业务考量,所以在设计之初,不要太理想,太追求严格的  RBAC  模型设计,因为这样会使得你的系统处处鸡肋,无法拓展。

所以在这里要说明一下,  RBAC  是一种模型,是一种思想,是一种核心思想,但是就思想而言,不是要你完全参照,而是你在这个基础之上,融入你自己的思想,赋予你的业务之上,达到适用你的业务。所以要批评一下那些说:“RBAC模型是垃圾,按照它思路去执行,结果无法拓展。”之类话语的人。那是你自己不会变通。

言归正传。

背景需求:

需要在“权限”=>“角色”=>“用户”之间,在赋予一个特殊的角色“客服”,这个需求比较常见,我一个用户想把我的权限分配到“客服”角色上,然后由几个“客服”去操作对应的业务流程。比如我们的天猫,淘宝商家后天就是如此,当店铺开到一定的规模,那么就会有分工。

A客服:负责打单填写发货单。

B~E客服:负责每天对我们说“亲,您好。祝亲生活愉快!”,也就是和我们沟通交流的客服。

F~H:负责售后。

... ...

那么这些客服也是归属到这个商家下面去。而且每个商家可能都有类似的客服,分工完全靠商家自己去分配管理。


这样的系统,融合我们的权限控制,关键要看“客服”用户的添加是在哪添加,如果是由客服直接添加,不走我们的统一注册流程,那建议不要融合到上面这一套 权限、角色、用户之间去,而是给用户再多一个绑定,把多个用户绑定到客服下,并且给客服赋予对应的权限。

1、权限赋予:

权限赋予是把当前用户的权限拉出来,然后分配的客服可以小于等于当前用户的权限。

2、权限加载:

正常的加载权限,当用户登录后,并且第一次使用权限判断的时候,  Shiro  会去加载权限。

3、权限判断:

走正常用户权限判断,但是数据操作需要判断是不是当前归属的用户的数据,其实这个是属于业务层,就算你不是客服,也是需要判断。

4、禁用|启用:

禁用启用,也是正常的用户流程,添加到禁用列表里,如果被禁用,就无法操作任何内容。


总之:不要让框框架架来限制你的业务,也不要让你的业务局限于框框架架。但是也不推荐你去改动框框架架,而是基于框框架架做业务封装。

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/280.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
Shiro 权限控制设计权限控制Demo、基于RBAC3
Springboot Maven 增加本地依赖包,Springboot Maven打包本地包
Java 10正式发布!增加109项新特性
Shiro教程(十)Shiro 权限动态加载与配置精细讲解
Springboot JPA 执行原生sql ,自定义SQL占位符增加参数
Java服务端监控平台设计
python基础代码示例(可免费复制)
python基础代码示例(可免费复制)
Golang 常见设计模式——装饰模式详细讲解
Golang 常见设计模式之单例模式
最新文章
文件上传漏洞与防御 4058
前端构建工具选型指南:Webpack、Vite、Rollup、esbuild 深度对比 1444
物联网时代2026年时序数据库选型指南 1151
SaaS行业面临AI挑战:从“无限复用”到“灵活适应” 1269
神经网络:从构造到模型训练全链路解析 1168
一文吃透 Redis 核心存储结构:ziplist、listpack 与哈希表扩容 / 并发查询 1593
Linux sudo提权完整指南:从基础用法到生产级安全配置 691
XSS 和 CSRF 的本质区别及开发防御全解析 772
JVM垃圾回收(GC)全维度解析:从原理到调优实战 813
Linux动静态库与ELF加载全解析:从实操制作到底层原理 912
最热文章
免费天气API,天气JSON API,不限次数获取十五天的天气预报 783114
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 711464
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 679993
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 562673
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 512621
Elasticsearch教程(四) elasticsearch head 插件安装和使用 484794
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 302947
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 247433
Elasticsearch教程(一),全程直播(小白级别) 233097
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 228329
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...