本申请属于数据管理,特别涉及一种基于模块的权限控制方法及装置。
背景技术:
1、角色权限是隐藏在一款产品背后的重要功能,可以说几乎每一个产品都需要角色权限,尤其体现在企业管理、带有流程审批的系统中,角色权限的使用则更加频繁。
2、现有的角色权限设计中,通常在服务器对某些数据增加权限编号,对于一个待进入系统的用户,首先判断其角色,然后判断该角色具有的指定权限,如果待进入的系统的数据所对应的权限编号归属于该指定权限下,则允许用户进入该系统以对相关数据进行操作。然而现有的数据管理系统越来越复杂,对不同数据,不同的人员的操作权限是不一样的,采用现有的单一权限的控制方式需要设计更加复杂的权限模型。
技术实现思路
1、为了解决上述问题,本申请提供了一种基于模块的权限控制方法及装置,建立实现不同角色的人员对不同数据的权限控制。
2、本申请第一方面提供了一种基于模块的权限控制方法,应用于服务端,主要包括:
3、步骤s1、获取客户端发送来的携带用户信息的token值、携带被操作数据对象的url以及操作码;
4、步骤s2、根据给定的用户和角色关系表确定当前用户的所有角色;
5、步骤s3、根据给定的角色和权限关系表确定当前用户的所有权限;
6、步骤s4、对每一个权限,根据权限模型获取该权限对应的数据集合、操作码及purl,所述purl为url的前缀;
7、步骤s5、基于所述数据集合,获取给定的数据组表达式;
8、步骤s6、对每一个权限,依次判断以下三个条件:
9、(1)客户端发送来的操作码与该权限对应的操作码是否一致;
10、(2)客户端发送来的url与该权限的purl是否一致;
11、(3)被操作数据对象是否满足该权限对应的数据组表达式;
12、如果存在同时满足上述三个条件的权限,则进入对所述数据集合操作的api控制层。
13、优选的是,步骤s1进一步包括:
14、步骤s11、判断客户端发送来的token值是否有效,如果无效,则进行登录失效响应。
15、优选的是,步骤s11之后进一步包括:
16、步骤s12、判断url是否存在与默认放行的url集合中,如果存在,则直接进入对所述数据集合操作的api控制层。
17、优选的是,步骤s6中,确定被操作数据对象是否满足该权限对应的数据组表达式包括:
18、步骤s61、对所述数据组表达式,基于指定的表达式分割字符串提取各个表达式及各表达式之间的逻辑关系;
19、步骤s62、按照客户端发送的数据对各个表达式进行匹配运算,给出匹配运算结果,所述匹配运算结果为true或false;
20、步骤s63、根据各表达式之间的逻辑关系判断所述数据组表达式是否成立,如果成立,则确定被操作数据对象满足该权限对应的数据组表达式。
21、本申请第二方面提供了一种基于模块的权限控制装置,包括服务端,所述服务端包括:
22、数据获取模块,用于获取客户端发送来的携带用户信息的token值、携带被操作数据对象的url以及操作码;
23、角色确定模块,用于根据给定的用户和角色关系表确定当前用户的所有角色;
24、权限确定模块,用于根据给定的角色和权限关系表确定当前用户的所有权限;
25、权限内容获取模块,用于对每一个权限,根据权限模型获取该权限对应的数据集合、操作码及purl,所述purl为url的前缀;
26、权限数据组表达式获取模块,用于基于所述数据集合,获取给定的数据组表达式;
27、权限匹配模块,用于对每一个权限,依次判断以下三个条件:
28、(1)客户端发送来的操作码与该权限对应的操作码是否一致;
29、(2)客户端发送来的url与该权限的purl是否一致;
30、(3)被操作数据对象是否满足该权限对应的数据组表达式;
31、如果存在同时满足上述三个条件的权限,则进入对所述数据集合操作的api控制层。
32、优选的是,所述数据获取模块包括:
33、登录识别单元,用于判断客户端发送来的token值是否有效,如果无效,则进行登录失效响应。
34、优选的是,所述数据获取模块包括:
35、白名单放行单元,用于判断url是否存在与默认放行的url集合中,如果存在,则直接进入对所述数据集合操作的api控制层。
36、优选的是,所述权限匹配模块包括:
37、数据组表达式拆分单元,用于对所述数据组表达式,基于指定的表达式分割字符串提取各个表达式及各表达式之间的逻辑关系;
38、表达式运算单元,用于按照客户端发送的数据对各个表达式进行匹配运算,给出匹配运算结果,所述匹配运算结果为true或false;
39、数据组运算单元,用于根据各表达式之间的逻辑关系判断所述数据组表达式是否成立,如果成立,则确定被操作数据对象满足该权限对应的数据组表达式。
40、本申请降低了系统管理员对系统的维护的复杂度。
1.一种基于模块的权限控制方法,应用于服务端,其特征在于,所述权限控制方法包括:
2.如权利要求1所述的基于模块的权限控制方法,其特征在于,步骤s1进一步包括:
3.如权利要求2所述的基于模块的权限控制方法,其特征在于,步骤s11之后进一步包括:
4.如权利要求1所述的基于模块的权限控制方法,其特征在于,步骤s6中,确定被操作数据对象是否满足该权限对应的数据组表达式包括:
5.一种基于模块的权限控制装置,包括服务端,其特征在于,所述服务端包括:
6.如权利要求5所述的基于模块的权限控制装置,其特征在于,所述数据获取模块包括:
7.如权利要求6所述的基于模块的权限控制装置,其特征在于,所述数据获取模块包括:
8.如权利要求5所述的基于模块的权限控制装置,其特征在于,所述权限匹配模块包括: