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

soゝso 2018-04-02 10:55:43 4994

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

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

本文主题:

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

相关文章
Java服务端监控平台设计
Shiro + EHCache 缓存的使用。
Shiro教程(一)Shiro 是什么?Shiro的简单介绍。
Shiro 通过配置Cookie 解决多个二级域名的单点登录问题。
Shiro教程(二)Maven管理Shrio Jar包
Shiro教程(三)Shiro web.xml中Filter配置,配置注意事项
Shiro教程(四)Shiro + Redis配置
Shiro教程(五)Shiro + Redis实现
Shiro教程(六)Shiro整体的配置文件
Shiro教程(七)Shiro Session共享配置以及实现
最新文章
ICP怎么操作取消备案,企业、个人怎么自己申请取消备案? 18
Javascript 加密/压缩后运行不了,JavaScript报错排查讲解 41
JavaScript 不可逆加密问题排查之方案一(闭包优化) 45
Java爬虫,Jsoup 爬取大众点评、美团商家信息电话号码解决方案 244
分解质因数 JavaScript 计算方式,及分解质因数讲解 8
湖南腾众4s店服务怎么样?进来看看你就知道了 29
SEO 之 SpringMVC redirect 301,301和302区别详细讲解 82
网站如何设置404页面、500等错误页面,有什么漏洞?怎么预防? 101
Java 文字转图片输出,Java 输出透明背景图片,Java文字转图片防爬虫 155
HttpClient获取访问域名的真实ip,HttpClient请求获取目标IP地址 299
最热文章
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 175206
Elasticsearch教程(四) elasticsearch head 插件安装和使用 138307
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 118003
Elasticsearch教程(六) elasticsearch Client创建 81989
Elasticsearch教程(一),全程直播(小白级别) 77101
Elasticsearch教程(二),IK分词器安装 77060
Elasticsearch教程(八) elasticsearch delete 删除数据(Java) 76748
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 75227
Elasticsearch教程(五) elasticsearch Mapping的创建 69398
Elasticsearch教程(三),IK分词器安装 (极速版) 58149

骚码加入我们 / 千人QQ群:259217951

入群需要5元,如果没有QQ钱包,可以先Alipay、微信,赞助然后加群主拉进。

二维码生成 来自 >> 二维码生成器

支付扫码

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

正在加载... ...