基于rbac模型的家庭业务访问控制方法_2

文档序号:9202676阅读:来源:国知局
x,并判断所有父域的prefix中的继承层次分割符的总数是否相同?如果是,则继续步骤A4 ;如果否,则从所有父域的prefix中的继承层次分割符的总数中挑选出一个最大值,然后在其他非最大值所对应的父域的prefix的结尾处分别添加多个该父域自身的ID,并使用继承层次分割符将prefix中的多个父域的ID进行间隔,从而使得所有父域的prefix中的继承层次分割符的总数都到达最大值,最后转向步骤A4 ;
[0035]根据继承层次分割符的总数可以计算出每个域在其继承分支上的继承层次,当父域的prefix中继承层次分割符的总数相同时,则表示所有父域在其继承分支上的继承层次相同,其子域的prefix直接合并所有父域的prefix即可,当继承层次分割符的总数不同时,则表示父域在其继承分支上的继承层次存在不一致,需对父域的prefix进行补全,从而使得所有父域在其继承分支上的继承层次相同;
[0036]步骤A4、从所有父域的prefix中分别读取出处于最高继承层次的域的ID (即超级域);
[0037]步骤A5、将读取出的、且互不重复的域的ID写入新建子域的prefix中,并使用多继承分割符将上述处于同一继承层次的域的ID进行间隔,同时使用继承层次分割符将其和其他继承层次的域进行间隔;
[0038]步骤A6、判断是否已读取完所有父域的prefix中的域的ID ?如果是,则在新建子域的prefix的结尾处添加新建子域的ID,并使用继承层次分割符将其和其他继承层次的域进行间隔,同时从所有父域的终端中选取多个终端来组成新建子域,本流程结束;如果否,则继续从所有父域的prefix中分别读取出处于下一继承层次的域的ID,然后转向步骤A5o
[0039]图3是本发明中的多个域继承关系示意图的一个实施例。如图3所示,超级域的ID为0,其prefix设置为:/0/,max-depth设置为-1 (不限制层级深度),超级域下有4个子域A、B、C、O,域A下创建域D,域1、L和H下创建域M,域M和F下创建域N,这样,每个域的 ID、prefix、max-depth 分别如下:
[0040]1、域 A,ID = 1,prefix = /0/1/,max-depth = 6 ;
[0041]2、域 B,ID = 2,prefix = /0/2/,max-depth = -1 ;
[0042]3、域 C,ID = 3,prefix = /0/3/,max-depth = -1 (不限制层级深度);
[0043]4、域 O,prefix = /0/15/,max-depth = O (该域下无法再创建子域);
[0044]5、域D,域D的父域是域A,因此,域D的max-depth须小于其父域A的max-depth,所以:ID = 4,prefix = /0/1/4/,max-depth = 6-1 = 5 ;
[0045]6、域M,域M是域1、L和H的公共子域,因此,域M的prefix应为其父域prefix的合并,由于域1、L和H所处的继承层次一致(即继承层次分割符的总数相同),则prefix逐层合并即可,同时,域M的max-depth须小于其父域1、L和H的max-depth,则只能为I或者 0,所以:ID = 13,prefix = /0/1, 2, 3/4, 11, 6/9, 12, 8/13/,max-depth = I ;
[0046]7、域N,域N是域M和F的公共子域,因此,域N的prefix应为域M和F的prefix的合并,由于域M和F所处的继承层次不一致(即继承层次分割符的总数不同),域F的prefix需要补全为/0/2,3/6/6/6/,之后再prefix逐层合并即可,同时,其max-depth只能为 O0 所以:ID = 13,prefix = /0/1, 2, 3/4, 11, 6/9, 12, 8, 6/13, 6/14/,max-depth = O。
[0047]值得一提的是,域的撤销影响的不仅是当前操作的域,还会影响到继承于这个域的各个子域,某个域的子域包括两种情况,以域F为例进行说明(域F的prefix为/0/2,3/6/):
[0048]1、一种是单继承于某个域的,即prefix的开头为/0/2,3/6/的域,例如域G:/0/2,3/6/7/ 和域 H:/0/2, 3/6/8/ ;
[0049]2、另一种是多继承于某个域的,即prefix中包含/*,6/,/6, */或/*,6,*/ (*为任意符合prefix要求的字符)的域,例如域M:/0/1, 2,3/4,11,6/9,12,8/13/和域N:/0/1, 2,3/4,11,6/9,12,8,6/13,6/14/。
[0050]本发明中,域的撤销可以采取全部撤销和局部撤销两种不同方式,从而满足不同的业务需求:
[0051]1、完全撤销,即撤销某个域后,回收这个域向下的所有授权,对这个域的所有子孙域进行处理,是一种深度的回收方式;
[0052]2、局部撤销,即撤销某个域后,不回收这个域向下的授权,对这个域的子孙域没有任何影响,浅度的回收了当前域,并不影响其他域,影响范围较小。
[0053]如图4所示,当本发明采用完全撤销方式来撤销一个域时,还可以进一步包括有:
[0054]步骤B1、为撤销域构建一个多继承子孙集,所述多继承子孙集初始化为空;
[0055]步骤B2、逐一查找现有的所有域的prefix,并判断每个域的prefix中是否包含有撤销域的prefix,如果是,则说明所查找到的域单继承于撤销域,将查找到的域进行撤销,并将其ID添加到撤销域子孙集中,并继续查找下一个域的prefix,直至查找完现有的所有域;如果否,则继续查找下一个域的prefix,直至查找完现有的所有域;
[0056]步骤B3、从所有未撤销的域中提取出一个域的prefix ;
[0057]步骤B4、判断所提取域的prefix中是否包含有撤销域的ID ?如果是,则进一步查找所提取域的prefix中是否还包含有撤销域的多继承子孙集中的域的ID,删除所提取域的prefix中所包含的撤销域和查找到的多继承子孙集中的域的ID、以及多余的多继承间隔符,同时判断所提取域的每个终端是否属于撤销域,当所提取域的终端属于撤销域时,则将所述终端从所提取域的终端中删除,然后继续下一步;如果否,则继续下一步;
[0058]步骤B5、判断是否已提取完所有未撤销的域?如果是,则本流程结束;如果否,则继续从所有未撤销的域中提取下一个域的prefix,然后转向步骤B4。
[0059]如图5所示,当本发明采用局部撤销方式来撤销一个域时,还可以进一步包括有:
[0060]步骤Cl、构建一个域集,所述域集由除了撤销域之外的所有域构成;
[0061]步骤C2、逐一查找域集中每个域的prefix,并判断每个域的prefix中是否包含有撤销域的prefix,如果是,则说明所查找到的域单继承于撤销域,删除所查找到的域的prefix中的撤销域的ID、以及多余的继承层次分割符,然后将所查找到的域从域集中去掉,再继续查找域集中下一个域的prefix,直至查找完域集中的所有域;如果否,则继续查找下一个域的prefix,直至查找完域集中的所有域;
[0062]步骤C3、从撤销域的prefix中提取其父域的ID,并从域集中提取出一个域的prefix ;
[0063]步骤C4、判断所提取域的prefix中是否包含有撤销域的ID ?如果是,则将所提取域的prefix中的撤销域的ID替换为其父域的ID,当撤销域的父域存在有多个时,则使用多继承间隔符将多个父域的ID进行间隔,然后将所提取域的prefix中撤销域的ID替换为间隔后的多个父域的ID,再继续下一步;如果否,则继续下一步;
[0064]步骤C5、判断是否已提取完域集中的所有域?如果是,则本流程结束;如果否,则继续从域集中提取下一个域的prefix,然后转向步骤C4。
[0065]例如,撤销域F,首先获取域F的ID为6、prefix为:/0/2,3/6/。域F的子域分为两种情况:一种是单继承于域F的,即prefix开头为/0/2,3/6/的域,为/0/2,3/6/7/和/0/2,3/6/8/,对应域G和H ;另一种是多继承于域F的,即prefix中包含/*,6/、/6,*/或/*,6,*/ (* 为任意符合 prefix 要求的字符)的域,为 /0/1,2,3/4,11,6/9,12,8/13/ 和 /0/I, 2,3/4,11,6/9,12,8,6/13,6/14/,对应域 M 和 N:
[0066]1、全部撤销时,对于单继承于域F的域G和H直接撤销,撤销域子孙集中的ID包括7和8 ;对于多继承于域F的域M和N,删除域M和N中所有属于域F的终端,并且处理域M 和 N 的 prefix,删除 6、7 和 8,更改后:域 M 的 prefix:/0/1,2, 3/4,11/9,12/13/,域
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1