在各种系统应用中都存在权限控制的概念。那么什么是权限控制?
权限控制用一句简单的话描述那就是:控制谁对什么资源执行什么操作
这样我们可以抽象出三个对象,即Who(主体),What(资源),How(操作),这样构成了权限三元组,不管你的权限系统多么的复杂,其实核心都是这三个
他们的对应关系如下:
主体说明:
假设有这样一个需求,需要对系统用户赋予一个新闻管理模块下的新闻发布的权限。
那么自然这里的主体、资源、操作分别对应的是用户、新闻管理模块、发布
再有就是如果需要对某部门下的所有员工都赋予新闻管理模块下的新闻发布的权限,
那么这里又可以抽象出用户组的概念,主体变成了用户组了。
还有什么对某角色,部门。岗位或在规定时间内,规定地点等都类似,看具体需求了
资源说明:
资源可以有多种类型,比如一个用户需要访问车辆管理下的出车记录,这种类型为菜单资源,即资源为车辆管理,假如使用Struts实现还可以将Action也看成一种资源,用户在敲Action地址时同时也可以对他的权限做控制是否有权限能访问此Action
操作说明:
如上面的例子访问某模块下的某某。。。可以看作一个操作,常见的操作一般是CRUD,
如果是将Action看作一个资源的话那么Action中的方法可以看作操作
那么什么叫权限?什么叫授权?
权限:就是对某个资源执行了某种操作
授权:即把权限授予主体,使权限和主体间建立关联
那么根据以上概念我们可以得到下面的关系图