本文简单介绍了权限控制之粗粒度与细粒度概念及实现,下面看看具体内容。
1. 什么是粗粒度和细粒度权限
粗粒度权限管理,对资源类型的权限管理。资源类型比如:菜单、url连接、用户添加页面、用户信息、类方法、页面中按钮。。
粗粒度权限管理比如:超级管理员可以访问户添加页面、用户信息等全部页面。
部门管理员可以访问用户信息页面包括 页面中所有按钮。
细粒度权限管理,对资源实例的权限管理。资源实例就资源类型的具体化,比如:用户id为001的修改连接,1110班的用户信息、行政部的员工。
细粒度权限管理就是数据级别的权限管理。
细粒度权限管理比如:部门经理只可以访问本部门的员工信息,用户只可以看到自己的菜单,大区经理只能查看本辖区的销售订单。。
粗粒度和细粒度例子:
系统有一个用户列表查询页面,对用户列表查询分权限,如果粗颗粒管理,张三和李四都有用户列表查询的权限,张三和李四都可以访问用户列表查询。
进一步进行细颗粒管理,张三(行政部)和李四(开发部)只可以查询自己本部门的用户信息。张三只能查看行政部 的用户信息,李四只能查看开发部门的用户信息。细粒度权限管理就是数据级别的权限管理。
2. 如何实现粗粒度和细粒度权限管理
如何实现粗粒度权限管理?
粗粒度权限管理比较容易将权限管理的代码抽取出来在系统架构级别统一处理。比如:通过springmvc的拦截器实现授权。
如何实现细粒度权限管理?
对细粒度权限管理在数据级别是没有共性可言,针对细粒度权限管理就是系统业务逻辑的一部分,如果在业务层去处理相对比较简单,如果将细粒度权限管理统一在系统架构级别去抽取,比较困难,即使抽取的功能可能也存在扩展不强。
建议细粒度权限管理在业务层去控制。
比如:部门经理只查询本部门员工信息,在service接口提供一个部门id的参数,controller中根据当前用户的信息得到该 用户属于哪个部门,调用service时将部门id传入service,实现该用户只查询本部门的员工。
3. 基于url拦截的方式实现
基于url拦截的方式实现在实际开发中比较常用的一种方式。
对于web系统,通过filter过虑器实现url拦截,也可以使用springmvc的拦截器实现基于url的拦截。
4. 使用权限管理框架实现
对于粗粒度权限管理,建议使用优秀权限管理框架来实现,节省开发成功,提高开发效率。
shiro就是一个优秀权限管理框架。
总结
以上就是本文关于权限控制之粗粒度与细粒度概念及实现简单介绍的全部内容,希望对大家有所帮助。有什么问题可以随时留言,小编会及时回复大家的。感谢各位对小牛知识库网站的支持!
本文向大家介绍javaweb设计中filter粗粒度权限控制代码示例,包括了javaweb设计中filter粗粒度权限控制代码示例的使用技巧和注意事项,需要的朋友参考一下 1 说明 我们给出三个页面:index.jsp、user.jsp、admin.jsp。 index.jsp:谁都可以访问,没有限制; user.jsp:只有登录用户才能访问; admin.jsp:只有管理员才能访问。 2 分析
本文向大家介绍Spring Security 中细化权限粒度的方法,包括了Spring Security 中细化权限粒度的方法的使用技巧和注意事项,需要的朋友参考一下 有小伙伴表示微人事(https://github.com/lenve/vhr)的权限粒度不够细。不过松哥想说的是,技术都是相通的,明白了 vhr 中权限管理的原理,在此基础上就可以去细化权限管理粒度,细化过程和还是用的 vhr 中用
Hystrix 隔离策略细粒度控制 Hystrix 实现资源隔离,有两种策略: 线程池隔离 信号量隔离 对资源隔离这一块东西,其实可以做一定细粒度的一些控制。 execution.isolation.strategy 指定了 HystrixCommand.run() 的资源隔离策略:THREAD or SEMAPHORE,一种基于线程池,一种基于信号量。 // to use thread isol
所以,我目前正在制作一个包含多个索引的DynamoDB表,并试图管理访问控制。 我有一个键(organizationId),我不想用它作为我的二级索引分区或排序键,因为它在查询方面几乎毫无意义。 DynamoDB工作台 表名:执行 分区键:组织ID(字符串) DynamoDB二级索引 主分区键:进程ID(String) 主排序键:状态(数字) 以下IAM策略条件是否会有效地限制对基于organiz
问题内容: 在我的游戏中,我使用 因此,当我绘制粒子时,它们占据了整个屏幕并且很大!那么如何缩小它们以满足我的需求? //皮尤实验室 问题答案: 您要么使用粒子编辑器(说实话,我认为这不是调整粒子大小的好主意,因为您提到粒子不会变得太小(对于其他任何我真的推荐的东西)),或者只是打开粒子效果文件。它应该由编辑器生成,或者您可以从示例中复制它。在此文件中搜索以下字段: 根据需要调整和。
本文向大家介绍几种JAVA细粒度锁的实现方式,包括了几种JAVA细粒度锁的实现方式的使用技巧和注意事项,需要的朋友参考一下 最近在工作上碰见了一些高并发的场景需要加锁来保证业务逻辑的正确性,并且要求加锁后性能不能受到太大的影响。初步的想法是通过数据的时间戳,id等关键字来加锁,从而保证不同类型数据处理的并发性。而java自身api提供的锁粒度太大,很难同时满足这些需求,于是自己动手写了几个简单的扩