基于ssm的RBAC的URL拦截的粗细粒度权限管理模块
基于ssm的RBAC的URL拦截的粗细粒度权限管理模块
前段时间在做后台管理的时候,要对用户进行认证和授权,开始想用一些框架:比如shiro、spring security ,但是使用都比较繁琐(shiro还好,特别是spring security)于是自己用springmvc的拦截器自己实现的认证授权,考虑到小项目每次都要实现用户、角色、资源模块的开发,所以就做成了模块,在一些简单的项目中可以直接使用;
下面开始:
1.一些知识粗细粒度的知识(网上很多,而且都很详细,大致说下)
首先要知道:
-
权限管理:比较好理解的就是对用户访问系统的控制,分为认证和授权两部分;
- 认证:就是验证访问系统的身份信息是否正确比如:登陆、指纹识别、人脸识别、刷卡等
- 授权:认证通过后需要根据用户的身份信息查询相应的授权信息,判断当前访问的资源是否可以访问;通俗说就是判断你有没有权力访问一些信息
-
权限模型
-
RBAC的概念
- RBAC(role based access control)基于角色的权限控制:通过判断用户是否具有某种角色来控制访问
伪代码为:if(user.hasRole(角色))
缺点:以角色进行访问控制粒度较粗,而且当控制资源的角色发生变化时,就会必须更改代码 - RBAC(resource based access control)基于资源的权限控制:通过用户来查找角色集合,再通过角色集合得到资源许可集合,判断访问资源是否被授权
伪代码为:if(user.hasPermission(资源))
优点:访问控制粒度较细,而且资源是不变而且是有限的,所以当资源的角色发送变化,不用改变代码
- RBAC(role based access control)基于角色的权限控制:通过判断用户是否具有某种角色来控制访问
-
粗细粒度权限控制
- 粗粒度:对资源类型的管理称为粗颗粒度权限管理,即只控制到菜单、按钮、方法;一般在系统架构级别实现;
- 细粒度:控制到数据级别的权限,比如:用户只允许修改本部门的员工信息,区域经理只允许查本区域的信息;目前无法在架构级别实现,一般在业务层实现;
2.啰嗦完了,看效果图
- 登陆:拦截器实现
- 主页面
- 用户界面:实现用户的增删改查、角色授权
- 角色界面:实现角色的增删改查、资源授权
- 资源界面:实现资源的增删改查
模块地址:GitHub下载地址
后面会再用shiro框架写一个;