shiro权限控制之粗细粒度的区别(转)_权限粗颗粒和细颗粒的区别-程序员宅基地

技术标签: Shiro  

1.1   什么是粗粒度和细粒度权限

粗粒度权限管理,对资源类型的权限管理。资源类型比如:菜单、url连接、用户添加页面、用户信息、类方法、页面中按钮。。

粗粒度权限管理比如:超级管理员可以访问户添加页面、用户信息等全部页面。

部门管理员可以访问用户信息页面包括 页面中所有按钮。

 

细粒度权限管理,对资源实例的权限管理。资源实例就资源类型的具体化,比如:用户id为001的修改连接,1110班的用户信息、行政部的员工。

细粒度权限管理就是数据级别的权限管理。

细粒度权限管理比如:部门经理只可以访问本部门的员工信息,用户只可以看到自己的菜单,大区经理只能查看本辖区的销售订单。。

 

粗粒度和细粒度例子:

 系统有一个用户列表查询页面,对用户列表查询分权限,如果粗颗粒管理,张三和李四都有用户列表查询的权限,张三和李四都可以访问用户列表查询。

进一步进行细颗粒管理,张三(行政部)和李四(开发部)只可以查询自己本部门的用户信息。张三只能查看行政部 的用户信息,李四只能查看开发部门的用户信息。细粒度权限管理就是数据级别的权限管理。


1.2   如何实现粗粒度和细粒度权限管理

如何实现粗粒度权限管理?

粗粒度权限管理比较容易将权限管理的代码抽取出来在系统架构级别统一处理。比如:通过springmvc的拦截器实现授权。

 

如何实现细粒度权限管理?

对细粒度权限管理在数据级别是没有共性可言,针对细粒度权限管理就是系统业务逻辑的一部分,如果在业务层去处理相对比较简单,如果将细粒度权限管理统一在系统架构级别去抽取,比较困难,即使抽取的功能可能也存在扩展不强。

建议细粒度权限管理在业务层去控制。

比如:部门经理只查询本部门员工信息,在service接口提供一个部门id的参数,controller中根据当前用户的信息得到该 用户属于哪个部门,调用service时将部门id传入service,实现该用户只查询本部门的员工。

1.3   基于url拦截的方式实现

基于url拦截的方式实现在实际开发中比较常用的一种方式。

对于web系统,通过filter过虑器实现url拦截,也可以使用springmvc的拦截器实现基于url的拦截。

1.4   使用权限管理框架实现

对于粗粒度权限管理,建议使用优秀权限管理框架来实现,节省开发成功,提高开发效率。

shiro就是一个优秀权限管理框架。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_38437243/article/details/75077560

智能推荐

Python实现自动发送B站直播弹幕软件,分享PDF高清版-程序员宅基地

文章浏览阅读695次,点赞10次,收藏28次。这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。首先你要登陆B站账号,然后随便点击一个,直播间,这里建议先选择人气少的,弹幕少的,这样方便查看效果。

让App进入后台以后长时间在后台运行,并且能正常接收来自前台的消息_有没有让app切到后台一直可以接收到websocket消息的办法,就是一直在后台运行-程序员宅基地

文章浏览阅读5k次。以前关于让app在后台长时间运行是用播放一个无声的音乐来实现,但是这样也智能争取到最多10分钟的后台运行时间,如果是跟蓝牙通信有关的app的话,倒是可以通过配置info.plist文件的键值对来实现app进入后台以后长时间的与前台消息进行交互,其实方法有很多,我们还可以用下面这种方式来实现://在键入以下代码之前,要先导入 框架 NSError *sessionError _有没有让app切到后台一直可以接收到websocket消息的办法,就是一直在后台运行

Flutter pubspec.yaml添加三方库、插件依赖时版本号前面的^作用_flutter插件版本号前面的^是什么意思-程序员宅基地

文章浏览阅读773次,点赞6次,收藏5次。在Flutter项目的文件中,管理依赖是一个常见且重要的任务。依赖的版本号管理决定了项目所使用的第三方库或插件的具体版本,进而影响到应用的功能、稳定性和兼容性。理解版本号前的符号的意义及其对依赖管理的影响是至关重要的。_flutter插件版本号前面的^是什么意思

【Javascript】输入一个数字计算一个数的阶乘_js使用函数完成任意数字阶乘的计算 要求:页面输入任意数字,点击按钮后计算阶乘-程序员宅基地

文章浏览阅读277次。传入参数为3,3*test(2) test(2)又调用了一遍函数,2*test(1) ,test(1)这时调用test()首先判断参数等于1的时候,结果返回他的自身。如果不等于1则返回n*test(n-1)_js使用函数完成任意数字阶乘的计算 要求:页面输入任意数字,点击按钮后计算阶乘

java计算机毕业设计web硕士研究生招生考试专业报考查询及学习系统设计与实现源码+mysql数据库+系统+lw文档+部署_基于javaweb的考研信息查询系统代码-程序员宅基地

文章浏览阅读86次。java计算机毕业设计web硕士研究生招生考试专业报考查询及学习系统设计与实现源码+mysql数据库+系统+lw文档+部署。源码地址:springboot基于SpringBoot的实验填报管理系统。springboot生物遗传病的治疗和防范系统。springboot多维分类的知识管理系统。ssm基于B_S景区票务管理系统设计与实现。ssm基于Java的摄影网上预约管理系统。_基于javaweb的考研信息查询系统代码

Qt键盘事件常用按键key值整理_qt键key定义-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏23次。Qt键盘事件常用按键key值整理_qt键key定义

随便推点

SSM民宿网上预订系统 计算机专业毕业设计源码30055_ssm农家乐预定系统-程序员宅基地

文章浏览阅读81次。民宿网上预订系统主要功能模块包括系统用户管理、民宿资讯、民宿信息、客房预定、入住信息、退房信息等,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采用JAVA技术和MySQL数据库技术,基于B/S模式实现了一个完整系统的设计。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对民宿网上预订系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本..._ssm农家乐预定系统

北方苍鹰算法优化核极限学习机NGO-KELM实现数据分类_核极限学习机的优缺点-程序员宅基地

文章浏览阅读50次。在机器学习领域,数据分类是一个常见的任务,它涉及将数据集中的样本分为不同的类别。为了实现高效准确的数据分类,研究人员一直在寻找新的算法和方法。在这篇博文中,我们将介绍一种基于北方苍鹰算法优化核极限学习机(NGO-KELM)的数据分类方法。核极限学习机(KELM)是一种新兴的机器学习方法,它具有快速训练速度和良好的泛化能力。它通过将输入数据映射到高维特征空间中,并使用核函数来提取特征之间的非线性关系。然后,通过线性回归模型来进行分类。虽然KELM在许多应用中取得了良好的效果,但它仍然存在一些挑战。_核极限学习机的优缺点

python爬虫从0到1 -xpath网页解析(lxml库)-程序员宅基地

文章浏览阅读752次,点赞19次,收藏14次。适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!**

tensorflow2, keras 报错: An error ocurred while starting the kernel 解决方法-程序员宅基地

文章浏览阅读885次。tensorflow2, keras 报错: An error ocurred while starting the kernel 解决方法win10装了conda tf2 后模型spyder fit 时出现 An error ocurred while starting the kernel,命令行也无法执行:神奇的是preprocessing一切正常,一到fit就重启,按照网上各种方法、安装各种包后无法解决,最后发现是 spyder python 解释器问题,解决步骤如下:1、在 anacond_an error ocurred while starting the kernel

elementui自定义修改dialog标题、以及body部分内容样式_设置dialog中的body样式-程序员宅基地

文章浏览阅读1.5k次。elementui自定义修改dialog标题样式_设置dialog中的body样式

Android Studio 导入系统源码后,一直 scanning files to index 的解决方法_as一直 scanning files to index-程序员宅基地

文章浏览阅读8k次,点赞5次,收藏7次。使用Android studio导入系统源码及跳转依赖配置,见:https://blog.csdn.net/chen930724/article/details/57086699 导入后,遇到AS一直不停地 scanning files to index,在网上搜索,几乎全是这个解决方法:File -> Invalidate Caches / Restart但是,使用后依..._as一直 scanning files to index

推荐文章

热门文章

相关标签