著录项信息
专利名称 | 授权控制方法和授权服务器 |
申请号 | CN200910146231.2 | 申请日期 | 2009-06-24 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2009-11-18 | 公开/公告号 | CN101582767 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L9/32 | IPC分类号 | H;0;4;L;9;/;3;2;;;H;0;4;L;1;2;/;2;4查看分类表>
|
申请人 | 阿里巴巴集团控股有限公司 | 申请人地址 | 英属开曼群岛大开曼岛资本大厦一座四层847号邮箱
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 阿里巴巴集团控股有限公司 | 当前权利人 | 阿里巴巴集团控股有限公司 |
发明人 | 姚振伟;滕骁;赵平飞 |
代理机构 | 北京集佳知识产权代理有限公司 | 代理人 | 逯长明;王宝筠 |
摘要
本申请实施例公开了一种授权控制方法和授权服务器,所述方法包括:为当前系统中的角色和权限分别建立角色表和权限表,其中,属于所述当前系统中同一子系统的角色和权限具有相同的源标识;接收到管理终端发送的为角色授权的命令时,根据所述命令获取所述角色的源标识;查找所述权限表,从所述权限表中获得源标识与所述获取的角色的源标识一致的权限;向所述管理终端返回所述获得的权限。本申请实施例中通过角色和权限的资源标识,可以为某个角色从当前系统的所有权限中选择与该角色属于同一子系统的权限,并仅返回该同一子系统的权限,由于子系统的权限范围远小于当前系统的权限范围,因此降低了系统管理员的负担,并且提高了授权的速度。
1.一种授权控制方法,其特征在于,预先为当前系统建立资源表,所述资源表中包括每个子系统的角色权限资源表项,以及为具有不同内容分类的子系统所建立的分类资源表项,为当前系统中的角色和权限分别建立角色表和权限表,其中,属于所述当前系统中同一子系统的角色和权限具有相同的源标识,当所述权限表中包含根据内容分类划分的权限表项时,在所述权限表项中写入权限为内容权限的标识,以及为所述子系统的内容范围划分若干级内容分类,并根据内容分类建立内容表,所述方法包括:
接收到管理终端发送的为角色授权的命令时,根据所述命令获取所述角色的源标识;
查找所述权限表,从所述权限表中获得源标识与所述获取的角色的源标识一致的权限;
向所述管理终端返回所述获得的权限;
接收所述管理终端从所述获得的权限中选择的权限;
将所述选择的权限授权给所述角色;
通过角色权限关联表保存所述角色和所述选择的权限之间的对应关系,当所述选择的权限中包含内容权限时,在所述角色权限关联表中存储所述角色和所述选择权限之间的对应关系的表项内写入所述内容权限的标识。
2.根据权利要求1所述的方法,其特征在于,所述角色权限资源表项的父亲标识为其所属子系统的标识;
属于所述当前系统中同一子系统的角色和权限的源标识具体为:所述同一子系统的角色权限资源表项的标识。
3.根据权利要求2所述的方法,其特征在于,所述分类资源表项的父亲标识为其所属子系统的标识;
所述内容表中属于同一子系统下第一级内容分类表项的父亲标识为所述同一子系统对应的分类资源表项的标识,除所述第一级内容分类表项的其它若干级内容分类表项的父亲标识为其所属的上一级内容分类表项的标识,每一级内容分类表项的属性标识中包含其上一级内容分类表项的属性标识。
4.根据权利要求3所述的方法,其特征在于,还包括:
当接收到管理终端发送的为用户授予角色的命令时,从所述命令中获取所述角色的标识;
根据所述角色的标识查找所述角色权限关联表中与所述角色对应的权限;
判断所述对应的权限是否为内容权限,若是,则向所述管理终端返回所述角色所属的子系统的内容分类列表;否则,将所述对应的权限授权给所述用户。
5.根据权利要求4所述的方法,其特征在于,所述向所述管理终端返回所述角色所属的子系统的内容分类列表包括:
根据所述角色的标识查找所述角色表,得到所述角色所属的子系统的角色权限资源表项的标识;
获取与所述角色权限资源表项的标识具有相同父亲节点的分类资源表项的标识;
根据所述分类资源表项的标识查找所述内容表,获得以所述分类资源表项的标识作为父亲标识的内容及其下属的若干级内容;
将所述获得的内容按照层级关系生成内容分类列表并返回所述管理终端。
6.根据权利要求4所述的方法,其特征在于,还包括:通过用户角色表保存为所述用户授权的角色。
7.根据权利要求4所述的方法,其特征在于,所述向所述管理终端返回所述角色所属的子系统的内容分类列表后还包括:
接收所述管理终端从所述内容分类列表中选择的内容分类;
将与所述选择的内容分类对应的内容权限授权给所述用户,
通过用户权限表保存为所述用户授权的内容权限。
8.一种授权服务器,其特征在于,包括:
表项建立单元,用于预先为当前系统建立资源表,所述资源表中包括每个子系统的角色权限资源表项,以及为具有不同内容分类的子系统所建立的分类资源表项,为当前系统中的角色和权限分别建立角色表和权限表,其中,属于所述当前系统中同一子系统的角色和权限具有相同的源标识,以及为所述子系统的内容范围划分若干级内容分类,并根据内容分类建立内容表;
接收角色授权命令单元,用于接收到管理终端发送的为角色授权的命令时,根据所述命令获取所述角色的源标识;
获取权限单元,用于从所述权限表中获得源标识与所述获取的角色的源标识一致的权限;
返回权限单元,用于向所述管理终端返回所述获取权限单元获得的权限;
角色授权单元,用于接收所述管理终端从所述获得的权限中选择的权限后,将所述选择的权限授权给所述角色;
表项保存单元,用于通过角色权限关联表保存所述角色和所述选择的权限之间的对应关系;
内容权限维护单元,用于当所述权限表中包含根据所述内容分类划分的权限表项时,在所述权限表项中写入所述权限为内容权限的标识,以及当所述管理终端选择的权限中包含内容权限时,在所述角色权限关联表中存储所述角色和所述选择权限之间的对应关系的表项内写入所述内容权限的标识。
9.根据权利要求8所述的服务器,其特征在于,所述角色权限资源表项的父亲标识为其所属子系统的标识,其中,属于所述当前系统中同一子系统的角色和权限的源标识具体为所述同一子系统的角色权限资源表项的标识。
10.根据权利要求9所述的服务器,其特征在于,所述分类资源表项的父亲标识为其所属子系统的标识,其中,属于同一子系统下第一级内容分类表项的父亲标识为所述同一子系统对应的分类资源表项的标识,除所述第一级内容分类表项的其它若干级内容分类表项的父亲标识为其所属的上一级内容分类表项的标识,每一级内容分类表项的属性标识中包含其上一级内容分类表项的属性标识。
11.根据权利要求10所述的服务器,其特征在于,还包括:
接收用户授权命令单元,用于当接收到管理终端发送的为用户授予角色的命令时,从所述命令中获取所述角色的标识;
查找角色权限单元,用于根据所述角色的标识查找所述角色权限关联表中与所述角色对应的权限;
判断权限单元,用于判断所述对应的权限是否为内容权限;
用户授权单元,用于当所述判断权限单元的判断结果为是时,向所述管理终端返回所述角色所属的子系统的内容分类列表,并接收所述管理终端从所述内容分类列表中选择的内容分类,将与所述选择的内容分类对应的内容权限授权给所述用户,当所述判断权限单元的判断结果为否时,将所述对应的权限授权给所述用户。
12.根据权利要求11所述的服务器,其特征在于,所述表项保存单元还用于,通过用户角色表保存为所述用户授权的角色,以及通过用户权限表保存为所述用户授权的内容权限。
授权控制方法和授权服务器\n技术领域\n[0001] 本申请涉及计算机技术领域,尤其涉及授权控制方法和授权服务器。\n背景技术\n[0002] 在现有互联网应用系统中通常采用简单的级别控制方式对用户进行授权控制,即对于应用系统中的某些内容,只要用户达到系统预设的级别就有权限对该内容进行操作。\n这种级别控制方式也称为角色/权限控制方式,以论坛系统为例,通过将某些权限赋予版主(角色),由版主来关联若干使用该论坛的用户,对其进行权限控制。\n[0003] 现有技术中,在服务器的权限列表内预先存储了授权系统内的所有权限,该授权系统可能需要通过服务器为多个论坛内的角色进行授权,当服务器接收到论坛管理员通过授权界面发送的为某个论坛内的角色进行授权的命令时,服务器将权限列表内的所有权限返回到授权界面,当系统管理员为该角色勾选相应的权限后,选择的结果由服务器接收并保存。\n[0004] 在对现有技术的研究和实践过程中,发明人发现现有技术中存在以下问题:现有技术在为角色进行授权时,由于权限表内保存的权限数量较多,当为某个特定论坛的用户授权时,服务器由于直接将所有的权限返回到授权界面供管理员选择,因此增加了管理员的负担;特别对于大型互联网应用系统,这种直接返回所有权限的授权方式,将降低授权的速度。\n发明内容\n[0005] 本申请实施例的目的是提供一种授权控制方法和授权服务器,以减轻授权系统管理员的负担,提高授权的速度。\n[0006] 为解决上述技术问题,本申请实施例提供了一种授权控制方法,是这样实现的:\n[0007] 一种授权控制方法,为当前系统中的角色和权限分别建立角色表和权限表,其中,属于所述当前系统中同一子系统的角色和权限具有相同的源标识,所述方法包括:\n[0008] 接收到管理终端发送的为角色授权的命令时,根据所述命令获取所述角色的源标识;\n[0009] 查找所述权限表,从所述权限表中获得源标识与所述获取的角色的源标识一致的权限;\n[0010] 向所述管理终端返回所述获得的权限。\n[0011] 为解决上述技术问题,本申请实施例还提供了一种授权服务器,是这样实现的:\n[0012] 一种授权服务器,包括:\n[0013] 表项建立单元,用于为当前系统中的角色和权限分别建立角色表和权限表,其中,属于所述当前系统中同一子系统的角色和权限具有相同的源标识;\n[0014] 接收角色授权命令单元,用于接收到管理终端发送的为角色授权的命令时,根据所述命令获取所述角色的源标识;\n[0015] 获取权限单元,用于从所述权限表中获得源标识与所述获取的角色的源标识一致的权限;\n[0016] 返回权限单元,用于向所述管理终端返回所述获取权限单元获得的权限。\n[0017] 可见,在本申请实施例中,预先为当前系统中的角色和权限分别建立角色表和权限表,属于当前系统中同一子系统的角色和权限具有相同的源标识,当接收到管理终端发送的为角色授权的命令时,根据该命令获取该角色的源标识,查找权限表获得权限表中源标识与获取的角色的源标识一致的权限,向所述管理终端返回所述获得的权限。由此可见,本申请实施例中通过角色和权限的资源标识,可以为某个角色从当前系统的所有权限中选择与该角色属于同一子系统的权限,并仅返回该同一子系统的权限,而不是当前系统中的所有权限,由于子系统的权限范围远小于当前系统的权限范围,因此降低了系统管理员的负担,并且提高了授权的速度。\n附图说明\n[0018] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。\n[0019] 图1为本申请授权控制方法的第一实施例流程图;\n[0020] 图2为本申请授权控制方法的第二实施例流程图;\n[0021] 图3A为应用本申请授权控制方法实施例的一个资源树结构示意图;\n[0022] 图3B为图3A所示资源树的资源视图的结构示意图;\n[0023] 图3C为图3A所示资源树的角色和权限视图的结构示意图;\n[0024] 图4为本申请授权服务器的实施例框图。\n具体实施方式\n[0025] 本申请实施例提供一种授权控制方法和授权服务器。\n[0026] 本申请实施例在实现授权控制时,授权服务器基于资源的概念,将属于当前系统的不同子系统中的角色、权限和内容分类统一进行管理。本申请实施例中通过为角色、权限和内容分别建表,这些表之间通过设置的标识字段进行相互关联,即属于同一子系统的角色、权限和内容具有相同的标识,当为某个子系统中的角色授予权限,以及为用户授予角色的时候,根据这些表项之间的相互关联,授权服务器可以在管理终端的授权管理界面上仅输出属于该子系统的权限,供系统管理员选择,由于授权服务器返回的该子系统的权限范围远小于当前系统的所有权限范围,因此提高了授权速度,降低了管理员的授权负担。\n[0027] 在授权管理界面,授权服务器返回的权限可以以树形结构的方式输出,具体如下:\n当资源作为角色和权限的分组概念时,将当前系统作为资源的父亲节点,其下挂载的多个子系统也是一种资源,但其并非角色挂载点和权限挂载点,对于每个子系统,其作为父亲节点,通过将属于每个子系统的资源设置为权限挂载点,或者角色挂载点,或者权限挂载点和角色挂载点,这些资源挂载在该父亲节点下,由于这些挂载点同属于一个父亲节点,因此使得这些权限和角色之间形成了天然的联系,并且使得不同子系统之间的角色权限可以有效区分;当资源作为内容分类概念时,也将当前系统作为资源的父亲节点,其下挂载的多个子系统作为第一级内容节点,当每个子系统作为父亲节点,根据该子系统的内容分类,其下又可以挂载若干级内容节点,内容节点之间通过层级关系可以方便地进行管理和授权,即当属于上一级内容节点的内容被授权给用户时,该内容节点的所有下级内容节点的内容也相应被授权给该用户。\n[0028] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。\n[0029] 本申请授权控制方法的第一实施例流程如图1所示,包括如下步骤:\n[0030] 步骤101:为当前系统中的角色和权限分别建立角色表和权限表,其中属于当前系统中同一子系统的角色和权限具有相同的源标识。\n[0031] 步骤102:接收到管理终端发送的为角色授权的命令时,根据该命令获取该角色的源标识。\n[0032] 步骤103:查找权限表,从所述权限表中获得源标识与获取的角色的源标识一致的权限。\n[0033] 步骤104:向管理终端返回获得的权限。\n[0034] 本申请授权控制方法的第二实施例流程如图2所示,包括如下步骤:\n[0035] 步骤201:授权服务器预先为当前系统建立资源表,资源表中包括每个子系统的角色权限资源表项,以及为具有不同内容分类的子系统所建立的分类资源表项。\n[0036] 其中,角色权限资源表项的父亲标识为其所属子系统的标识,分类资源表项的父亲标识也为其所属子系统的标识。\n[0037] 步骤202:为当前系统中的角色和权限分别建立角色表和权限表。\n[0038] 其中,属于当前系统中同一子系统的角色和权限具有相同的源标识,该源标识可以具体为所述同一子系统的角色权限资源表项的标识。\n[0039] 步骤203:为子系统的内容范围划分若干级内容分类,并根据内容分类建立内容表。\n[0040] 内容是目标系统的一种模型,表示的就是目标系统的类目。如一个论坛系统包括三个版块,分别为服装版块、汽车版块和新闻实事版。则该三个版块就是论坛系统的三个内容。在建立资源的时候,可以选择该资源是否是内容,如果是的话,在资源表里面,可以设置一个类型字段,取值为1,表示该资源为内容,如果资源不是内容,则可以设置类型字段的取值为0。\n[0041] 其中,属于同一子系统下第一级内容分类表项的父亲标识为所述同一子系统对应的分类资源表项的标识,除所述第一级内容分类表项的其它若干级内容分类表项的父亲标识为其所属的上一级内容分类表项的标识。另外,还可以为内容分类表项设置属性标识,每一级内容分类表项的属性标识中可以包含其上一级内容分类表项的属性标识。\n[0042] 步骤204:当权限表中包含根据内容分类划分的权限表项时,在该权限表项中写入权限为内容权限的标识。\n[0043] 内容权限是在建立权限的时候,仅针对某个特定内容有效的权限,而在该特定内容之外并不生效的权限。如上述论坛系统中,若要为新闻实事版块的管理员授予权限,对于删除帖子的权限,要求该新闻实事版块的管理员只能在本版块内删除帖子,而不能到服装版块删除帖子,因此,删除帖子的权限属于内容权限。对于审核注册用户的权限,则允许该新闻实事版块的管理员审核所有注册用户的信息,而并不局限于和新闻实事版块有关的注册用户信息,因此,审核注册用户的权限并不是内容权限。本申请将审核注册用户权限等非内容权限称为操作性权限。一个权限是否为内容权限,需要在权限表里设置标志位字段,如果该权限是内容权限,则标志位用一个值标识,如果该权限不是内容权限,则标志位用另一个值标识。具体如何取值,本实施例不做限制,只要能区分是否为内容权限即可。\n[0044] 步骤205:授权服务器接收到管理终端发送的为角色授权的命令时,根据该命令获取该角色的源标识。\n[0045] 步骤206:查找权限表,从权限表中获得源标识与所获取的角色的源标识一致的权限,并向管理终端返回获得的权限。\n[0046] 步骤207:接收管理终端从获得的权限中选择的权限,并将选择的权限授权给该角色。\n[0047] 步骤208:通过角色权限关联表保存角色和选择的权限之间的对应关系,并在角色权限关联表中权限为内容权限的表项内写入内容权限的标识。\n[0048] 步骤209:当授权服务器接收到管理终端发送的为用户授予角色的命令时,从命令中获取该角色的标识。\n[0049] 步骤210:根据角色的标识查找角色权限关联表中与该角色对应的权限。\n[0050] 步骤211:判断与该角色对应的权限是否为内容权限,若是,则执行步骤212;否则,执行步骤213。\n[0051] 根据所述角色的标识查找角色表,得到角色所属的子系统的角色权限资源表项的标识,获取与该角色权限资源表项的标识具有相同父亲节点的分类资源表项的标识,根据分类资源表项的标识查找所述内容表,获得以该分类资源表项的标识作为父亲标识的内容及其下属的若干级内容,将所获得的内容按照层级关系生成内容分类列表并返回所述管理终端。\n[0052] 步骤212:向所述管理终端返回该角色所属的子系统的内容分类列表,执行步骤\n214。\n[0053] 步骤213:将对应的权限授权给该用户,结束当前流程。\n[0054] 步骤214:接收管理终端从内容分类列表中选择的内容分类,将与选择的内容分类对应的内容权限授权给用户。\n[0055] 步骤215:通过用户权限表保存为所述用户授权的内容权限,结束当前流程。\n[0056] 在实际应用中,一般所有的表项都存放在数据库中,即存放在服务器的硬盘内,但是对于访问量比较大的系统,如淘宝网,过多地到数据库中去存取数据使得服务器上的硬盘被频繁操作,会影响读取效率甚至会压垮数据库。而由于上述表项在设置好后就不会频繁变动,所以通常会在缓存中保存这些不易变动的数据,因为缓存的读取速度快,能够缓解数据库的压力;当数据库内容发生变化的时候,再更新服务器上面的缓存。因此,优选的,本申请实施例通过缓存存取表项数据以提高服务器的性能。\n[0057] 上述本申请实施例中,可以应用数据库分别为当前系统建立资源表(resource)、角色表(role)、权限表(permission)、角色权限关联表(role_permission)、用户角色表(user_role)和用户权限表(user_permission)。由于这些表之间通过设置的ID字段相互关联,因此当为当前系统的某个子系统中的角色进行授权,或者为该子系统中的用户授予角色的时候,根据表项之间的关联关系在管理员授权界面上可以以角色权限资源树和分类资源树的形式呈现该子系统的授权范围。通常当管理员为该子系统进行角色授权管理时,会点击操作界面上角色管理对应的命令按钮,授权服务器相应接收到包含该子系统标识的授权命令,并向授权管理界面返回该子系统的权限范围,具体可以以树的方式显示出该子系统中标记为角色挂载点的资源节点及其父亲节点,当点击这些角色挂载点时,则其下展现挂载的角色,即这就是角色视图,同理,该子系统的权限视图也以类似的方式展现,后续将通过具体应用实例进行说明,在此不再赘述。\n[0058] 如图3A所示,为应用本申请授权控制系统所形成的资源树结构示意图,从资源的角度考虑,当前系统作为资源树的父亲节点,以资源A表示,在资源A下挂载的子资源A1为一个论坛系统,该论坛系统既不是角色挂载点,也不是权限挂载点。子资源A1的角色权限资源以图中右侧角色权限资源树示出,子资源A1的内容权限资源以图中左侧分类资源树示出。\n[0059] 在分类资源树中,子资源A1下挂载的各级内容节点为按照论坛系统的内容划分的多级版块对应的各个内容节点,假设该论坛系统A1包含三个版块,分别为服装版A21、汽车版A22和新闻实事版A23,其中新闻实事版A23进一步分为国内新闻子版A231和国际新闻子版A232。在角色权限资源树中,子资源A1下挂载的资源A11为角色挂载点,资源A12为权限挂载点,其中,资源A11中包含的具体角色可以为各个版块的管理员,资源A12中包含的具体权限可以为审核注册用户、查找用户资料等操作性权限,也可以包含如删除帖子等内容性权限。\n[0060] 基于上述角色权限资源树和分类资源树,假设为角色“各个版块的管理员”授予权限,根据角色权限资源树可以确定各个版块的管理员属于角色挂载点A11,角色挂载点A11的父亲节点为论坛系统对应的子资源A1,A1下挂载的权限挂载点中包含的权限均可授予各个版块的管理员,即各个版块的管理员被授权的权限包括审核注册用户,查找用户资料、删除帖子等权限,其中,由于删除帖子属于内容性权限,如果为用户“新闻实事版的版主”授予角色,则新闻实事版的版主只能具有删除新闻实事版的帖子的权限,而不能具有删除服装版等其它版块帖子的权限,因此为新闻实事版的版主授予管理员的角色时,可以将操作权限授予新闻实事版的版主,而在授予删除帖子等内容权限时,通过分类资源树的层级结构,选择分类资源树中的新闻实事版A23,表示新闻实事版的版主在实行删除帖子的操作时,只能在新闻实事版中完成。另外,虽然新闻实事版A23进一步分为国内新闻子版A231和国际新闻子版A232,但为新闻实事版的版主授予内容性权限时,根据内容节点之间的层级关系,只需选择新闻实事版A23,而不必再选择国内新闻子版A231和国际新闻子版A232。\n[0061] 下面以在数据库中建立表的方式,详细说明上述应用实例的实现过程:\n[0062] 第一步,在资源(resource)表中建立关于当前系统(资源A)的资源时,在resource表中建立三条记录,分别为关于论坛系统(子资源A1)的记录,关于角色权限资源树的记录和关于分类资源树的记录,如下表1所示,其中,Parent_ID字段表示父亲节点的ID,name字段表示资源的名称,type字段表示该资源是否为内容,As_pgroup字段表示该资源是否为权限节点,As_rgroup字段表示该资源是否为角色节点,uri字段表示该资源为内容时在目标系统中的ID:\n[0063] 表1\n[0064] \n ID Parent_ID name type As_pgroup As_rgroup uri\n 1007 -1 A1 0 1 1\n 1008 1007 角色权限资源树 0 1 1\n 1009 1007 分类资源树 1 0 0 0\n[0065] 上表1的第一条记录中,Parent_ID为-1表示接入系统的父亲节点就是本系统的根节点,type为0表示该资源为菜单(非内容),As_pgroup为1表示该资源是权限节点,As_rgroup为1表示该资源是角色节点,由于该资源非内容,所以uri中没有值;上表1的第二条记录中,Parent_ID为1007表示接入系统的父亲节点为A1,type为0表示该资源为菜单(非内容),As_pgroup为1表示该资源是权限节点,As_rgroup为1表示该资源是角色节点,由于该资源非内容,所以uri中没有值;上表1的第三条记录中,Parent_ID为1007表示接入系统的父亲节点为A1,type为1表示该资源为内容,As_pgroup为0表示该资源不是权限节点,As_rgroup为0表示该资源不是角色节点,由于该资源为内容,所以uri为0表示该内容在目标系统中的ID。\n[0066] 第二步,在分类资源树下进一步建立针对内容资源的内容表,如下表2所示:\n[0067] 表2\n[0068] \n ID Parent_ID name type As_pgroup As_rgroup uri\n 1010 1009 服装版 1 0 0 100\n 1011 1009 汽车版 1 0 0 101\n 1012 1009 新闻时事版 1 0 0 103\n 1013 1012 国内新闻子版 1 0 0 109\n 1014 1012 国际新闻子版 1 0 0 110\n[0069] 上表2中服装版、汽车版和新闻时事版为表1中分类资源树的下一级内容节点,因此它们的父亲节点的ID均为1009,而国内新闻子版和国际新闻子版为新闻时事版的下一级内容节点,因此它们的父亲节点的ID均为1012。由于上表2中的记录均针对内容,因此type均为1,As_pgroup和As_rgroup均为0,表示为内容节点,而非角色节点或权限节点,由于为内容节点,因此为其分别设置uri值,以表示该内容节点在目标系统中的ID。\n[0070] 根据上述表1和表2,可以得到如图3B所示的资源视图的结构示意图,其中A1下一级为角色权限资源树和分类资源树,分类资源树可以进一步展开为服装版、汽车版和新闻实时版,新闻实时版又可进一步展开为国内新闻子版和国际新闻子版;而相应的角色视图则如图3C所示,其中A1下一级为角色权限资源树,角色权限资源树不能如分类资源树一样再展开下一级菜单,同样权限视图也如图3C所示。\n[0071] 第三步,建立如下表3所示的权限表,该表中示出了三个权限记录,其中,resource_ID表示父亲节点的ID,name字段表示权限的名称,code字段表示权限的编码,type字段表示是否为内容权限:\n[0072] 表3\n[0073] \n ID resource_ID name code type\n 586 1008 删除帖子 Delete_thread 10\n 587 1008 编辑帖子 Modify_thread 10\n 588 1008 创建版块 Create_sub_forum 1\n[0074] 上表3中,这些权限的父亲节点ID均为1008(角色权限资源树),其中删除帖子权限和编辑帖子权限是内容权限(即针对特定版块有效),其type值设为10,而创建版块权限为操作权限(对所有版块有效),其type值设为1。\n[0075] 第四步,建立如下表4所示的角色表,该表中示出了二个角色记录,其中,resource_ID表示父亲节点的ID,name字段表示权限的名称:\n[0076] 表4\n[0077] \n ID resource_ID name\n 1165 1008 版块管理员\n 1166 1008 帖子管理员\n[0078] 上表4中,这些角色的父亲节点ID均为1008(角色权限资源树),两个角色名称分别为版块管理员和帖子管理员。\n[0079] 第五步,根据表3和表4建立如下表5所示的角色权限关联表,该关联表关联了表\n3中的权限和表4中的角色,其中,Role_ID字段表示角色ID,Permission_ID字段表示权限ID,Permission_code字段表示权限编码,Permission_type字段表示权限是否为内容权限:\n[0080] 表5\n[0081] \n Role_ID Permission_ID Permission_code Permission_type\n 1165 588 Create_sub_forum 1\n 1166 586 Delete_thread 10\n 1166 587 Modify_thread 10\n[0082] 第六步,为具体的用户进行角色和权限授权,对于操作权限,则根据表5直接将角色与用户关联,对于内容权限,则列出根据表2生成分类资源树供管理员勾选。\n[0083] 假设把角色“版块管理员”赋给用户“tbtest101”,把角色“帖子管理员”赋给用户“tbtest202”,则在用户角色表中增加两条记录,如下表6所示:\n[0084] 表6\n[0085] \n User_ID User_nick Role_ID\n 175754147 tbtest101 1165\n 175754265 tbtest202 1166\n[0086] 由于权限“删除帖子”和“编辑帖子”为内容权限,因此为用户tbtest202授予该内容权限时,假设其仅能在国内新闻子版中执行上述内容权限,则在如下表7所示的用户权限表中增加两条记录:\n[0087] 表7\n[0088] \n Role_ID Permission_ID Permission_code User_ID Content_ID\n 1166 586 Delete_thread 175754265 109\n 1166 587 Modify_thread 175754265 109\n[0089] 上表7中,Content_id代表内容的ID,即外部系统对应的目录ID。在用户进入该系统时,如果要使用操作权限,则需输入用户ID,权限代码,即可在用户角色表和用户权限表中查询;如果要使用内容权限,则需要输入内容节点的id,权限代码和用户的ID,利用用户权限表来查询。\n[0090] 根据上述建立的表项,在数据库中完成了对用户授权系统的建立,[0091] 另外,在上述各实施例中,如果内容的不同分类具体为根据内容范围划分的若干级内容分类,则在每一个内容表项中还可以包含对应内容分类的上一级内容分类的标识。\n结合表2为例说明,由于国内新闻子版是新闻时事版的下一级内容分类,因此在创建内容表时,可以在该内容表中增加一个属性标识符字段,用于标识每一级内容和下一级内容之间的关系,假设新闻时事版的属性标识符为“news”,则国内新闻子版的属性标识符可以为“news.innews”。由此可知,每一级内容自身的属性标识符与上一级内容的属性标识符可以通过“.”连接,形成属于每个内容的唯一属性标识符,该属性标识符可以表示各个内容之间的层级关系,当内容范围的划分发生变更时,通过该内容的属性标识符可以精确定位到该内容,对该内容及其下级内容进行更新,提高了维护效率。\n[0092] 与本申请授权控制方法的实施例相对应,本申请还提供了授权服务器的实施例。\n[0093] 本申请授权服务器的实施例框图如图4所示,该服务器包括:表项建立单元410、接收角色授权命令单元420、获取权限单元430和返回权限单元440。\n[0094] 其中,表项建立单元410,用于为当前系统中的角色和权限分别建立角色表和权限表,其中,属于所述当前系统中同一子系统的角色和权限具有相同的源标识;\n[0095] 接收角色授权命令单元420,用于接收到管理终端发送的为角色授权的命令时,根据所述命令获取所述角色的源标识;\n[0096] 获取权限单元430,用于从所述权限表中获得源标识与所述获取的角色的源标识一致的权限;\n[0097] 返回权限单元440,用于向所述管理终端返回所述获取权限单元获得的权限。\n[0098] 进一步,该授权服务器还可以包括(图4中未示出):角色授权单元,用于接收所述管理终端从所述获得的权限中选择的权限后,将所述选择的权限授权给所述角色;表项保存单元,用于通过角色权限关联表保存所述角色和所述选择的权限之间的对应关系。\n[0099] 进一步,所述表项建立单元410还用于,预先为所述当前系统建立资源表,所述资源表中包括每个子系统的角色权限资源表项,所述角色权限资源表项的父亲标识为其所属子系统的标识,其中,属于所述当前系统中同一子系统的角色和权限的源标识具体为所述同一子系统的角色权限资源表项的标识。\n[0100] 进一步,所述表项建立单元410还用于,在所述资源表中为具有不同内容分类的子系统建立分类资源表项,所述分类资源表项的父亲标识为其所属子系统的标识,以及为所述子系统的内容范围划分若干级内容分类,并根据所述内容分类建立内容表,其中,属于同一子系统下第一级内容分类表项的父亲标识为所述同一子系统对应的分类资源表项的标识,除所述第一级内容分类表项的其它若干级内容分类表项的父亲标识为其所属的上一级内容分类表项的标识,每一级内容分类表项的属性标识中包含其上一级内容分类表项的属性标识。\n[0101] 进一步,该授权服务器还可以包括(图4中未示出):内容权限维护单元,用于当所述权限表中包含根据所述内容分类划分的权限表项时,在所述权限表项中写入所述权限为内容权限的标识,以及当所述管理终端选择的权限中包含内容权限时,在所述角色权限关联表中存储所述角色和所述选择权限之间的对应关系的表项内写入所述内容权限的标识。\n[0102] 该授权服务器还可以包括(图4中未示出):接收用户授权命令单元,用于当接收到管理终端发送的为用户授予角色的命令时,从所述命令中获取所述角色的标识;查找角色权限单元,用于根据所述角色的标识查找所述角色权限关联表中与所述角色对应的权限;判断权限单元,用于判断所述对应的权限是否为内容权限;用户授权单元,用于当所述判断权限单元的判断结果为是时,向所述管理终端返回所述角色所属的子系统的内容分类列表,并接收所述管理终端从所述内容分类列表中选择的内容分类,将与所述选择的内容分类对应的内容权限授权给所述用户,当所述判断权限单元的判断结果为否时,将所述对应的权限授权给所述用户。\n[0103] 进一步,所述表项保存单元还用于,通过用户角色表保存为所述用户授权的角色,以及通过用户权限表保存为所述用户授权的内容权限。\n[0104] 通过以上的实施方式的描述可知,在本申请实施例中,预先为当前系统中的角色和权限分别建立角色表和权限表,属于当前系统中同一子系统的角色和权限具有相同的源标识,当接收到管理终端发送的为角色授权的命令时,根据该命令获取该角色的源标识,查找权限表获得权限表中源标识与获取的角色的源标识一致的权限,向所述管理终端返回所述获得的权限。由此可见,本申请实施例中通过角色和权限的资源标识,可以为某个角色从当前系统的所有权限中选择与该角色属于同一子系统的权限,并仅返回该同一子系统的权限,而不是当前系统中的所有权限,由于子系统的权限范围远小于当前系统的权限范围,因此降低了系统管理员的负担,并且提高了授权的速度。\n[0105] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。\n[0106] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。\n[0107] 本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。\n[0108] 本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。\n[0109] 虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
法律信息
- 2012-06-27
- 2010-01-13
- 2009-11-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-04-22
|
2007-10-17
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |