[权限管理系统篇] (五)-Spring security(授权过程分析)
欢迎关注公众号【Ccww笔记】,原创技术文章第一时间推出
前言
权限管理系统的组件分析以及认证过程的往期文章:
1. 权限管理相关概念
权限管理是一个几乎所有后台系统的都会涉及的一个重要组成部分,主要目的是对整个后台管理系统进行权限的控制。常见的基于角色的访问控制,其授权模型为“用户-角色-权限
-
用户: 不用多讲,大家也知道了;
-
角色: 一个集合的概念,角色管理是确定角色具备哪些权限的一个过程 ;
-
权限: 1).页面权限,控制你可以看到哪个页面,看不到哪个页面; 2). 操作权限,控制你可以在页面上进行哪些操作(查询、删除、编辑等); 3).数据权限,是控制你可以看到哪些数据。
实质是:
权限(Permission) = 资源(Resource) + 操作(Privilege)
角色(Role) = 权限的集合(a set of low-level permissions)
用户(User) = 角色的集合(high-level roles)
权限管理过程:
-
鉴权管理,即权限判断逻辑,如菜单管理(普通业务人员登录系统后,是看不到【用户管理】菜单的)、功能权限管理(URL访问的管理)、行级权限管理等
-
授权管理,即权限分配过程,如直接对用户授权,直接分配到用户的权限具有最优先级别、对用户所属岗位授权,用户所属岗位信息可以看作是一个分组,和角色的作用一样,但是每个用户只能关联一个岗位信息等。
在实际项目中用户数量多,逐一的为每个系统用户授权,这是极其繁琐的事,所以可以学习linux文件管理系统一样,设置group模式,一组有多个用户,可以为用户组授权相同的权限,简便多了。这样模式下: 每个用户的所有权限=用户个人的权限+用户组所用的权限 用户组、用户、与角色三者关系如下:
再结合权限管理的页面权限、操作权限,如菜单的访问、功能模块的操作、按钮的操作等等,可把功能操作与资源统一管理,即让它们直接与权限关联起来,关系图如下: