System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及网络安全,尤其是涉及基于功能权限和数据权限的控制方法和装置。
技术介绍
1、常用的企业级应用权限体系是基于rbac(role-based access control,基于角色的访问控制)体系演化而来,主要用于实现系统用户通过身份认证登入系统后的进一步权限控制诉求,规避越权漏洞风险。
2、在rbac体系中,业务系统的权限与角色相关联,通过赋予系统用户个体适当的角色(或角色组)从而使系统用户得到相应的权限。典型的rbac权限关系如图1所示。
3、业务系统的权限在广义上可分为业务功能权限和数据访问权限。现有的业务功能权限和数据访问权限的控制模块实现,通常需要在业务函数逻辑中通过硬编码实现判断控制,比如:对某业务功能进行操作权限控制,就需要在对应业务功能的后台资源控制层代码中插入对应资源uri的权限查询、判断、退出逻辑;对某业务数据进行访问权限控制,就需要在获取数据的后台数据访问层代码中插入对应数据库、表的权限查询和查询条件拼接逻辑。但是,这种控制方式存在以下几个问题:
4、1)成本高,即对于每个新增或变更的权限控制需求,需要发布新的后台程序版本,涉及大量的业务代码改造,权限控制的实现成本高。
5、2)风险高,即由于控制逻辑是在各个资源控制函数和数据库访问函数中实现,在较复杂的企业级业务系统中易出现因代码实现不当或遗漏导致的流程异常阻断或控制失效风险。
6、3)控制逻辑侵入,即基于硬编码的控制逻辑代码侵入了原有的业务功能逻辑代码,导致系统工程代码整体可读性和可扩
技术实现思路
1、有鉴于此,本专利技术的目的在于提供基于功能权限和数据权限的控制方法和装置,具备低侵入、低风险、高性能和可复用的优点。
2、第一方面,本专利技术实施例提供了基于功能权限和数据权限的控制方法,所述方法包括:
3、当网关引入功能权限控制组件,并且确定用户有权限访问uri请求时,后端服务器接收所述网关发送的所述uri请求;
4、所述后端服务器通过访问控制层将所述uri请求分发至接口函数,并解析请求参数作为所述接口函数的入参对象;
5、所述接口函数调用数据访问层,将所述入参对象中的业务参数传入,以获取业务数据;
6、所述数据访问层拼接所述入参对象中的业务参数至对应的数据库查询语句,并执行查询函数;
7、所述数据访问层引入数据权限控制组件后,获取数据权限控制条件,将所述数据权限控制条件自动拼接至所述数据库查询语句;
8、所述数据访问层通过所述数据库查询语句访问数据库,从而获取业务数据对象;
9、将所述业务数据对象通过所述网关返回给客户端。
10、第二方面,本专利技术实施例提供了基于功能权限和数据权限的控制装置,所述装置包括:
11、功能权限控制模块,用于当网关引入功能权限控制组件,并且确定用户有权限访问uri请求时,后端服务器接收所述网关发送的所述uri请求;
12、解析模块,用于通过所述后端服务器的访问控制层将所述uri请求分发至接口函数,并解析请求参数作为所述接口函数的入参对象;
13、传入模块,用于所述接口函数调用数据访问层,将所述入参对象中的业务参数传入,以获取业务数据;
14、查询条件拼接模块,用于所述数据访问层拼接所述入参对象中的业务参数至对应的数据库查询语句,并执行查询函数;
15、数据权限控制模块,用于所述数据访问层引入数据权限控制组件后,获取数据权限控制条件,将所述数据权限控制条件自动拼接至所述数据库查询语句;
16、业务数据对象获取模块,用于所述数据访问层通过所述数据库查询语句访问数据库,从而获取业务数据对象;
17、返回模块,用于将所述业务数据对象通过所述网关返回给客户端。
18、第三方面,本专利技术实施例提供了电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
19、第四方面,本专利技术实施例提供了具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行如上所述的方法。
20、本专利技术实施例提供了基于功能权限和数据权限的控制方法和装置,包括:当网关引入功能权限控制组件,并且确定用户有权限访问uri请求时,后端服务器接收网关发送的uri请求;通过访问控制层将uri请求分发至接口函数,并解析请求参数作为接口函数的入参对象;接口函数调用数据访问层,并传入入参对象,以获取业务数据;数据访问层拼接入参对象中的业务参数至对应的数据库查询语句,并执行查询函数;数据访问层引入数据权限控制组件后,获取数据权限控制条件,将数据权限控制条件自动拼接至数据库查询语句;数据访问层通过数据库查询语句访问数据库,从而获取业务数据对象;将业务数据对象通过网关返回给客户端;具备低侵入、低风险、高性能和可复用的优点。
21、本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
22、为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
本文档来自技高网...【技术保护点】
1.一种基于功能权限和数据权限的控制方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于功能权限和数据权限的控制方法,其特征在于,所述功能权限控制组件的处理过程通过以下方式实现:
3.根据权利要求2所述的基于功能权限和数据权限的控制方法,其特征在于,获取用户请求的会话信息中的用户信息,包括:
4.根据权利要求2所述的基于功能权限和数据权限的控制方法,其特征在于,所述URI白名单列表缓存于本地线程安全的静态Set对象中,所述用户信息字段属性名称缓存于所述本地线程安全的静态字符串对象中。
5.根据权利要求1所述的基于功能权限和数据权限的控制方法,其特征在于,获取数据权限控制条件,将所述数据权限控制条件自动拼接至所述数据库查询语句,包括:
6.根据权利要求5所述的基于功能权限和数据权限的控制方法,其特征在于,所述数据权限控制条件为查询语句片段,所述查询语句片段包括关系型数据库的查询语句和搜索引擎的查询语句。
7.根据权利要求5所述的基于功能权限和数据权限的控制方法,其特征在于,所述数据权限控制涉及的数据库
8.一种基于功能权限和数据权限的控制装置,其特征在于,所述装置包括:
9.一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的基于功能权限和数据权限的控制方法。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至7任一项所述的基于功能权限和数据权限的控制方法。
...【技术特征摘要】
1.一种基于功能权限和数据权限的控制方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于功能权限和数据权限的控制方法,其特征在于,所述功能权限控制组件的处理过程通过以下方式实现:
3.根据权利要求2所述的基于功能权限和数据权限的控制方法,其特征在于,获取用户请求的会话信息中的用户信息,包括:
4.根据权利要求2所述的基于功能权限和数据权限的控制方法,其特征在于,所述uri白名单列表缓存于本地线程安全的静态set对象中,所述用户信息字段属性名称缓存于所述本地线程安全的静态字符串对象中。
5.根据权利要求1所述的基于功能权限和数据权限的控制方法,其特征在于,获取数据权限控制条件,将所述数据权限控制条件自动拼接至所述数据库查询语句,包括:
6.根据权利要求5所述的基于功能权限和数据权...
【专利技术属性】
技术研发人员:李岩峰,石运福,王赫,苗鹏,杨清华,张雪,
申请(专利权)人:阳光财产保险股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。