权限管理解决方案

本文探讨了粗粒度和细粒度权限管理的概念,并提供了实现这两种权限管理的方法。粗粒度权限通常涉及资源类型的管理,如URL、菜单等,而细粒度权限关注资源实例,如特定用户的操作。实现粗粒度权限可以通过系统架构级别的拦截器,而细粒度权限更适合在业务层处理,如在Service层根据用户角色限制访问。文中推荐使用Shiro框架进行权限管理,同时也提到基于URL拦截的常见实践。
摘要由CSDN通过智能技术生成

一:什么是粗粒度和细粒度权限?

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

         细粒度权限:对资源实例的权限管理。资源实例就是资源类型的具体化,比如:用户id为001的修改链接,110班的用户信息,行政部的员工,细粒度权限管理就是数据级别的权限管理。比如:部门经理只可以访问本部门的员工,用户只可以看到自己的菜单,大区经理只可以查看本辖区的销售订单

二:如何实现粗粒度和细粒度的权限管理?

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

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

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

       对细粒度级别的权限管理在数据级别是没有共性可言的,针对细粒度权限管理就是系统业务逻辑的一部分,在业务层去处理会相对比较方便,如果在系统架构及别去处理,实现会很困难,即使实现了,可扩展性也不强。

       建议细粒度权限管理在service层实现,比如:部门经理查看本部分员工信息,在service中提供一个部门id的参数,controller中根据当前用户的信息得到该用户属于哪个部门,调用service将部门ID传入service,即可实现查询本部门员工的信息。

      使用权限管理框架实现:

         对于粗粒度的权限管理,可以使用权限管理框架来实现管理,节省开发成本,提高开发效率。

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

      不使用框架,基于url拦截的方式实现

         url拦截方式在实际开发中比较常用

         对于web系统,可以使用过滤器,也可以使用springmvc/struts/nutz等框架的拦截器实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值