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

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

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
Java服务端监控平台设计
Shiro教程(十)Shiro 权限动态加载与配置精细讲解
RBAC 介绍,案例讲解。
Shiro教程(八)Shiro Freemarker标签的使用。
Shiro教程(六)Shiro整体的配置文件
Shiro教程(二)Maven管理Shrio Jar包
Shiro教程(三)Shiro web.xml中Filter配置,配置注意事项
Shiro教程(十一)Shiro 控制并发登录人数限制实现,登录踢出实现
Spring 3.x 升级到Spring 4.x 注意事项和步骤,错误解决方法
最新文章
JS加密V6版本上线了,JS加密升级,原来的sojson.v5加密升级到JS加密第六个版本!!! 153
陕西普通话考试查询官方,网站代码源码 539
阿里云和腾讯云哪个好? 310
2019年9月16日新浪短链API已经恢复使用,新浪短链服务官方已经宣布停用。本站已经攻克 2740
2019年 中秋节、国庆节放假通知来了,拼假攻略 205
记一次小失误导致的大事件,Mysql SQL Error: 0, SQLState: null 排查过程 456
Springboot Maven 增加本地依赖包,Springboot Maven打包本地包 233
Java 获取图片属性、获取图片EXIF属性操作方法[metadata-extractor] 110
又拍云(Upyun)CDN、云存储刷新链接缓存,API实例讲解 155
Linux Centos 使用 Redis service 启动,Redis service 脚本编写 241
最热文章
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 185436
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 169979
Elasticsearch教程(四) elasticsearch head 插件安装和使用 143144
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 106150
Elasticsearch教程(六) elasticsearch Client创建 83184
Elasticsearch教程(一),全程直播(小白级别) 80914
Elasticsearch教程(二),IK分词器安装 78565
Elasticsearch教程(八) elasticsearch delete 删除数据(Java) 77652
免费天气API,天气JSON API,不限次数获取十五天的天气预报 75234
Elasticsearch教程(五) elasticsearch Mapping的创建 72250

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

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

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

支付扫码

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

正在加载... ...