CN106529229B - 权限数据的处理方法和装置 - Google Patents
权限数据的处理方法和装置 Download PDFInfo
- Publication number
- CN106529229B CN106529229B CN201510575317.2A CN201510575317A CN106529229B CN 106529229 B CN106529229 B CN 106529229B CN 201510575317 A CN201510575317 A CN 201510575317A CN 106529229 B CN106529229 B CN 106529229B
- Authority
- CN
- China
- Prior art keywords
- business logic
- logic codes
- code
- codes
- authority information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种权限数据的处理方法和装置。其中,该方法包括:在接收到执行业务逻辑代码所对应功能的请求之后,调用权限检查代码进行权限校验,得到校验结果,其中,业务逻辑代码和权限检查代码处于分离状态,业务逻辑代码用于指示执行预定功能,权限检查代码用于对预定功能的权限进行校验;判断校验结果是否指示运行业务逻辑代码;以及在判断出校验结果指示运行业务逻辑代码后,运行业务逻辑代码。本发明解决了现有技术中业务逻辑代码的运行效率比较低的技术问题。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种权限数据的处理方法和装置。
背景技术
企业信息***中,权限控制是不可或缺的一环。***需要对每个用户赋予不同的权限,以控制用户对数据读写更新的权限,这个通常是跟业务紧密结合的,需要根据业务的变化、以及用户角色的变化进行调整。比如,用户张三现在是普通员工,那么他只具有填写工单的权限;但是明天如果他被提升为科长,那么他就需要具有更大的权限,比如审批工单,撤回申请的权限等。现有技术在进行权限控制时,需要在执行业务逻辑代码之前运行权限检查代码,以确认用户是否具有这个操作的权限。
发明人发现,现有技术在所有需要对数据进行操作的代码中都需要调用权限检查代码,而权限检查代码大量分布在***中,与业务逻辑代码混在一起,不仅增加代码的复杂度,而且在调用业务逻辑代码时,业务逻辑代码还需要调用权限检查代码,使得业务逻辑代码的运行效率比较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种权限数据的处理方法和装置,以至少解决现有技术中业务逻辑代码的运行效率比较低的技术问题。
根据本发明实施例的一个方面,提供了一种权限数据的处理方法,包括:在接收到执行业务逻辑代码所对应功能的请求之后,调用权限检查代码进行权限校验,得到校验结果,其中,所述业务逻辑代码和所述权限检查代码处于分离状态,所述业务逻辑代码用于指示执行预定功能,所述权限检查代码用于对预定功能的权限进行校验;判断所述校验结果是否指示运行所述业务逻辑代码;以及在判断出所述校验结果指示运行所述业务逻辑代码后,运行所述业务逻辑代码。
进一步地,所述业务逻辑代码包括保存在预定的包路径下具有相同权限信息的业务逻辑代码,所述具有相同权限信息的业务逻辑代码包括第一业务逻辑代码和第二业务逻辑代码,在判断出所述校验结果指示运行所述业务逻辑代码后,运行所述业务逻辑代码包括:在判断出校验结果指示运行所述第一业务逻辑代码之后,运行所述第一业务逻辑代码;接收指示信息,所述指示信息用于指示所述预定的包路径下的第二业务逻辑代码运行;根据所述指示信息运行所述第二业务逻辑代码。
进一步地,调用所述权限检查代码进行权限校验包括:获取所述业务逻辑代码的权限信息,其中,所述业务逻辑代码的权限信息为标注在所述业务逻辑代码中的信息;调用所述权限检查代码对所述业务逻辑代码的权限信息进行校验。
进一步地,所述权限信息包括以下至少一种信息:采用可扩展标记语言注释在所述业务逻辑代码前端的权限信息;采用注解配置化的方式在所述业务逻辑代码前端的权限信息。
进一步地,获取业务逻辑代码和权限检查代码包括:所述业务逻辑代码和权限检查代码采用面向切面编程进行分离。
根据本发明实施例的另一方面,还提供了一种权限数据的处理装置,调用单元,在接收到执行业务逻辑代码所对应功能的请求之后,调用权限检查代码进行权限校验,得到校验结果,其中,所述业务逻辑代码和所述权限检查代码处于分离状态,所述业务逻辑代码用于指示执行预定功能,所述权限检查代码用于对预定功能的权限进行校验;判断单元,用于判断所述校验结果是否指示运行所述业务逻辑代码;以及运行单元,用于在判断出所述校验结果指示运行所述业务逻辑代码后,运行所述业务逻辑代码。
进一步地,所述业务逻辑代码包括保存在预定的包路径下具有相同权限信息的业务逻辑代码,所述具有相同权限信息的业务逻辑代码包括第一业务逻辑代码和第二业务逻辑代码,所述运行单元包括:第一运行模块,用于在判断出校验结果指示运行所述第一业务逻辑代码之后,运行所述第一业务逻辑代码;接收模块,用于接收指示信息,所述指示信息用于指示所述预定的包路径下的第二业务逻辑代码运行;第二运行模块,用于根据所述指示信息运行所述第二业务逻辑代码。
进一步地,所述调用单元包括:获取模块,用于获取所述业务逻辑代码的权限信息,其中,所述业务逻辑代码的权限信息为标注在所述业务逻辑代码中的信息;调用模块,用于调用所述权限检查代码对所述业务逻辑代码的权限信息进行校验。
进一步地,所述权限信息包括以下至少一种信息:采用可扩展标记语言注释在所述业务逻辑代码前端的权限信息;采用注解配置化的方式在所述业务逻辑代码前端的权限信息。
进一步地,所述业务逻辑代码和权限检查代码采用面向切面编程进行分离。
在本发明实施例中,采用在接收到执行业务逻辑代码所对应功能的请求之后,调用权限检查代码进行权限校验,得到校验结果,其中,业务逻辑代码和权限检查代码处于分离状态,业务逻辑代码用于指示执行预定功能,权限检查代码用于对预定功能的权限进行校验;判断校验结果是否指示运行业务逻辑代码;以及在判断出校验结果指示运行业务逻辑代码后,运行业务逻辑代码的方式,业务逻辑代码和权限检查代码处于分离状态,权限检查代码不由业务逻辑代码调用,而是在运行业务逻辑代码之前、请求执行业务逻辑代码之后调用权限检查代码,在权限检查代码确定权限验证通过,可以运行业务逻辑代码之后,再运行业务逻辑代码,避免了现有技术中业务逻辑代码和权限检查代码混在一起,在业务逻辑代码运行之后再调用权限检查代码而造成的业务逻辑代码的编码复杂且调用关系复杂的问题,进而解决了现有技术中业务逻辑代码的运行效率比较低的技术问题,达到了提高业务逻辑代码的运行效率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的权限数据的处理方法的流程图;以及
图2是根据本发明实施例的权限数据的处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应用程序编程接口:Application programming interface,简称为API。
面向切面编程:Aspect oriented programming,缩写为AOP。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
可扩展标记语言:extensible markup language,简称XML。标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
根据本发明实施例,提供了一种权限数据的处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的权限数据的处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,在接收到执行业务逻辑代码所对应功能的请求之后,调用权限检查代码进行权限校验,得到校验结果,其中,业务逻辑代码和权限检查代码处于分离状态,业务逻辑代码用于指示执行预定功能,权限检查代码用于对预定功能的权限进行校验。
业务逻辑代码可以是指示例如购物***中修改订单、提交订单的功能的代码,权限检查代码可以是校验用户是否有权限修改订单,是否有权限提交订单的代码。校验结果包括有权限运行业务逻辑代码和无权限运行逻辑代码。例如某个功能是否能够被某个用户使用,如果确定允许被某个用户使用,则校验结果指示有权限运行业务逻辑代码,否则,指示没有权限运行业务逻辑代码。可选地,采用面向切面编程分离业务逻辑代码和权限检查代码。
步骤S104,判断校验结果是否指示运行业务逻辑代码。
步骤S106,在判断出校验结果指示运行业务逻辑代码后,运行业务逻辑代码。业务逻辑代码在权限检查代码进行权限校验,并且校验结果为指示其运行之后再运行,无需业务逻辑代码调用权限检查代码进行校验,也就是说,权限检查代码在业务逻辑代码运行之前进行权限校验,避免了业务逻辑代码调用权限检查代码。
本实施例中业务逻辑代码和权限检查代码处于分离状态,权限检查代码不由业务逻辑代码调用,而是在运行业务逻辑代码之前、请求执行业务逻辑代码之后调用权限检查代码,在权限检查代码确定权限验证通过,可以运行业务逻辑代码之后,再运行业务逻辑代码,避免了现有技术中业务逻辑代码和权限检查代码混在一起,在业务逻辑代码运行之后再调用权限检查代码而造成的业务逻辑代码的编码复杂且调用关系复杂的问题,进而解决了现有技术中业务逻辑代码的运行效率比较低的技术问题,达到了提高业务逻辑代码的运行效率的技术效果。
另外,由于业务逻辑代码是需要具有权限的用户才可以指示其运行的,当指示其运行的用户有变化时,就需要通过配置权限检查代码来更新权限。由于这种用户的变化是经常存在的,当***比较复杂时配置权限检查代码会比较复杂。尤其是大型***中,利用现有的技术需要从混在业务逻辑代码中查找权限检查代码,并对其修改,当***升级时,分布在***各处的业务逻辑代码中的权限代码都需要被修改,可能会出现修改错误的情况。但是,通过本申请的技术方案,由于业务逻辑代码和权限检查代码是分离的,不再是混在一起的,需要修改权限检查代码时,不需要从业务逻辑代码中查找权限检查代码,单独修改权限检查代码能更准确的确定要修改的权限检查代码,并且由于代码分离,降低了代码的复杂度,权限检查代码和业务逻辑代码可以分别进行处理,不会相互影响,提高了***升级或者修改的效率,
例如:用户A登录某购物***,需要执行修改订单的功能。该购物***的修改订单功能由业务逻辑代码执行,判断用户A是否有权限修改订单属于权限检查代码执行。在该购物***中,上述业务逻辑代码和权限检查代码处于分离状态。
当用户A点击修改订单的功能时,即请求执行业务逻辑代码所对应的功能,调用权限检查代码。此时修改订单的功能处于还未运行的状态,但是权限检查代码已经开始运行以校验用户A是否有修改订单的权限。如果校验结果指示用户A可以修改订单,则运行业务逻辑代码,用户A可以修改订单;如果校验结果指示用户A不可以修改订单,则不会运行业务逻辑代码,并且可以发出用户A没有修改权限的提示信息。
可选地,在校验权限时,可以采用以下两种方式进行校验:
第一种,对于具有相同权限信息的业务逻辑代码,这类业务逻辑代码可以存放在预定的包路径下,调用预定的包路径下的业务逻辑代码时,由于权限信息相同,只要同一用户在请求一个业务逻辑代码并且通过校验后,该用户也可以指示其他业务逻辑代码运行,并且不需要再次验证。即业务逻辑代码包括保存在预定的包路径下具有相同权限信息的业务逻辑代码,具有相同权限信息的业务逻辑代码包括第一业务逻辑代码和第二业务逻辑代码,在判断出校验结果指示运行业务逻辑代码后,运行业务逻辑代码包括:在判断出校验结果指示运行第一业务逻辑代码之后,运行第一业务逻辑代码;接收指示信息,指示信息用于指示预定的包路径下的第二业务逻辑代码运行;根据指示信息运行第二业务逻辑代码。
例如,某个购物网站的订单修改功能、订单提交功能和订单删除功能存储在预定的包路径下,用户A登录该购物网站并请求执行订单修改功能(即第一业务逻辑代码),则校验该用户A是否有权限指示执行订单修改功能,如果确定用户A有权限指示执行订单修改功能,则执行订单修改功能。在这之后,用户A还请求执行订单删除功能(即第二业务逻辑代码),则不需要再次校验权限,可以在接收到用户A发送的执行订单删除功能的指示信息后,执行订单删除功能。
由此可见,该实施例可以对多个业务逻辑代码的权限进行统一控制和校验,从而提高了校验的效率。具有相同权限的多个业务逻辑代码存在于***时,实现了对多个业务逻辑代码的控制,减少了权限检查代码的设置。更改一个预定的包路径的权限信息,就能修改多个业务逻辑代码的权限,避免了逐个更改业务逻辑代码的权限,提高了更改权限的效率。同时,由于权限检查代码和业务逻辑代码分离设置,修改权限时只需要在权限检查代码中修改,并不会修改业务逻辑代码,也不会更改业务逻辑代码的逻辑,权限检查代码和业务逻辑代码可以分别进行修改,便于***的升级和更新。
第二种,对于不具有相同权限信息的业务逻辑代码,需要单独控制权限的业务逻辑代码,或者预定的包路径下的业务逻辑代码中的个别预定的包路径需要进一步控制权限时,可以采用单独标注的方法,即调用权限检查代码进行权限校验包括:获取业务逻辑代码的权限信息,其中,业务逻辑代码的权限信息为标注在业务逻辑代码中的信息;调用权限检查代码对业务逻辑代码的权限信息进行校验。
例如,权限信息是允许用户A修改订单,修改订单还涉及修改订单的时间、金额等内容,而修改订单的功能允许用户A修改其中订单的时间,不允许用户A修改其中订单的金额。权限信息还可以是允许用户B修改订单,并且能够修改订单的时间和订单的金额。指示修改订单的时间的业务逻辑代码中标记了用户A的权限和用户B的权限(如用户A=true,用户B=true),指示修改订单的金额的业务逻辑代码中标记了用户B的权限(如用户B=true),那么,用户A在指示修改订单的时间时,权限检查代码检查指示修改订单的时间的业务逻辑代码中标记了用户A=true,则确定该用户A可以修改订单的时间;用户A在指示修改订单的金额时,权限检查代码检查指示修改订单金额的业务逻辑代码中没有标记用户A=true,则确定该用户A不可以修改订单的金额。而用户B在指示修改订单的金额时,权限检查代码检查指示修改订单金额的业务逻辑代码中有标记用户B=true,则确定该用户B可以修改订单的金额。权限信息标注在业务逻辑代码中,在执行业务逻辑代码之前,权限检查代码先校验标注在业务逻辑代码中的权限信息,在校验通过后执行标注有权限信息的业务逻辑代码。由于校验信息不是由用户携带,增加了权限信息的安全性。
可选地,权限信息包括以下至少一种信息:采用可扩展标记语言注释在业务逻辑代码前端的权限信息;采用注解配置化的方式在业务逻辑代码前端的权限信息。
标注的权限信息即可以是对预定的包路径下的业务逻辑代码的进一步控制,还可以是对不再预定的包路径下的业务逻辑代码的单独控制,通过在业务逻辑代码中标注权限信息增加了权限控制的灵活性,由于标注的权限信息也是在运行业务逻辑代码之前进行权限校验的,因此,不需要业务逻辑代码调用权限校验,解决现有技术中业务逻辑代码的运行效率比较低的技术问题,达到了提高业务逻辑代码的运行效率的技术效果。
通过上述实施例,可以通过面向切面编程将业务逻辑代码和权限检查代码分离,权限检查代码不由业务逻辑代码调用,而是在运行业务逻辑代码之前、请求执行业务逻辑代码之后调用权限检查代码,在权限检查代码确定权限验证通过,可以运行业务逻辑代码之后,再运行业务逻辑代码,避免了现有技术中业务逻辑代码和权限检查代码混在一起,在业务逻辑代码运行之后再调用权限检查代码而造成的业务逻辑代码的编码复杂且调用关系复杂的问题,进而解决了现有技术中业务逻辑代码的运行效率比较低的技术问题,达到了提高业务逻辑代码的运行效率的技术效果。
另外,可以采用多种方式对业务逻辑代码进行控制,增加了权限的数据处理的灵活性。同时,标注的权限信息也是在运行业务逻辑代码之前进行权限校验的,因此,不需要业务逻辑代码调用权限校验,解决现有技术中业务逻辑代码的运行效率比较低的技术问题,达到了提高业务逻辑代码的运行效率的技术效果。
根据本发明实施例,还提供了一种权限数据的处理装置的实施例。该权限数据的处理装置实施例可以执行上述权限数据的处理方法,上述权限数据的处理方法也可以通过该权限数据的处理装置执行。
图2是根据本发明实施例的权限数据的处理装置的示意图,如图2所示,该装置包括:调用单元10、判断单元20和运行单元30。
调用单元10用于在接收到执行业务逻辑代码所对应功能的请求之后,调用权限检查代码进行权限校验,得到校验结果,其中,业务逻辑代码和权限检查代码处于分离状态,业务逻辑代码用于指示执行预定功能,权限检查代码用于对预定功能的权限进行校验。业务逻辑代码可以是指示例如购物***中修改订单、提交订单的功能的代码,权限检查代码可以是校验用户是否有权限修改订单,是否有权限提价订单的代码。校验结果包括有权限运行业务逻辑代码和无权限运行逻辑代码。例如某个功能是否能够被某个用户使用,如果确定允许被某个用户使用,则校验结果指示有权限运行业务逻辑代码,否则,指示没有权限运行业务逻辑代码。
判断单元20用于判断校验结果是否指示运行业务逻辑代码。
运行单元30用于在判断出校验结果指示运行业务逻辑代码后,运行业务逻辑代码。业务逻辑代码在权限检查代码进行权限校验,并且校验结果为指示其运行之后再运行,无需业务逻辑代码调用权限检查代码进行校验,也就是说,权限检查代码在业务逻辑代码运行之前进行权限校验,避免了业务逻辑代码调用权限检查代码。
本实施例通过面向切面编程将业务逻辑代码和权限检查代码分离,权限检查代码不由业务逻辑代码调用,而是在运行业务逻辑代码之前、请求执行业务逻辑代码之后调用权限检查代码,在权限检查代码确定权限验证通过,可以运行业务逻辑代码之后,再运行业务逻辑代码,避免了现有技术中业务逻辑代码和权限检查代码混在一起,在业务逻辑代码运行之后再调用权限检查代码而造成的业务逻辑代码的编码复杂且调用关系复杂的问题,进而解决了现有技术中业务逻辑代码的运行效率比较低的技术问题,达到了提高业务逻辑代码的运行效率的技术效果。
另外,由于业务逻辑代码是需要具有权限的用户才可以指示其运行的,当指示其运行的用户有变化时,就需要通过配置权限检查代码来更新权限。由于这种用户的变化是经常存在的,当***比较复杂时配置权限检查代码会比较复杂。尤其是大型***中,利用现有的技术需要从混在业务逻辑代码中查找权限检查代码,并对其修改,当***升级时,分布在***各处的业务逻辑代码中的权限代码都需要被修改,可能会出现修改错误的情况。但是,通过本申请的技术方案,由于业务逻辑代码和权限检查代码是分离的,不再是混在一起的,需要修改权限检查代码时,不需要从业务逻辑代码中查找权限检查代码,单独修改权限检查代码能更准确的确定要修改的权限检查代码,并且由于代码分离,降低了代码的复杂度,权限检查代码和业务逻辑代码可以分别进行处理,不会相互影响,提高了***升级或者修改的效率,
例如:用户A登录某购物***,需要执行修改订单的功能。该购物***的修改订单功能由业务逻辑代码执行,判断用户A是否有权限修改订单属于权限检查代码执行。在该购物***中,上述业务逻辑代码和权限检查代码处于分离状态。
当用户A点击修改订单的功能时,即请求执行业务逻辑代码所对应的功能,调用权限检查代码。此时修改订单的功能处于还未运行的状态,但是权限检查代码已经开始运行以校验用户A是否有修改订单的权限。如果校验结果指示用户A可以修改订单,则运行业务逻辑代码,用户A可以修改订单;如果校验结果指示用户A不可以修改订单,则不会运行业务逻辑代码,并且可以发出用户A没有修改权限的提示信息。
可选地,在校验权限时,可以调用单元模块以采用以下两种方式进行校验:
第一种,对于具有相同权限信息的业务逻辑代码,这类业务逻辑代码可以存放在预定的包路径下,调用预定的包路径下的业务逻辑代码时,由于权限信息相同,只要同一用户在请求一个业务逻辑代码并且通过校验后,该用户也可以指示其他业务逻辑代码运行,并且不需要再次验证。即业务逻辑代码包括保存在预定的包路径下具有相同权限信息的业务逻辑代码,具有相同权限信息的业务逻辑代码包括第一业务逻辑代码和第二业务逻辑代码,运行单元包括:第一运行模块,用于在判断出校验结果指示运行第一业务逻辑代码之后,运行第一业务逻辑代码;接收模块,用于接收指示信息,指示信息用于指示预定的包路径下的第二业务逻辑代码运行;第二运行模块,用于根据指示信息运行第二业务逻辑代码。
例如,某个购物网站的订单修改功能、订单提交功能和订单删除功能存储在预定的包路径下,用户A登录该购物网站并请求执行订单修改功能(即第一业务逻辑代码),则校验该用户A是否有权限指示执行订单修改功能,如果确定用户A有权限指示执行订单修改功能,则执行订单修改功能。在这之后,用户A还请求执行订单删除功能(即第二业务逻辑代码),则不需要再次校验权限,可以在接收到用户A发送的执行订单删除功能的指示信息后,执行订单删除功能。
由此可见,该实施例可以对多个业务逻辑代码的权限进行统一控制和校验,从而提高了校验的效率。具有相同权限的多个业务逻辑代码存在于***时,实现了对多个业务逻辑代码的控制,减少了权限检查代码的设置。更改一个预定的包路径的权限信息,就能修改多个业务逻辑代码的权限,避免了逐个更改业务逻辑代码的权限,提高了更改权限的效率。同时,由于权限检查代码和业务逻辑代码分离设置,修改权限时只需要在权限检查代码中修改,并不会修改业务逻辑代码,也不会更改业务逻辑代码的逻辑,权限检查代码和业务逻辑代码可以分别进行修改,便于***的升级和更新。
第二种,对于不具有相同权限信息的业务逻辑代码,需要单独控制权限的业务逻辑代码,或者预定的包路径下的业务逻辑代码中的个别预定的包路径需要进一步控制权限时,可以进行单独标注,即调用单元包括:获取模块,用于获取业务逻辑代码的权限信息,其中,业务逻辑代码的权限信息为标注在业务逻辑代码中的信息;调用模块,用于调用权限检查代码对业务逻辑代码的权限信息进行校验。
例如,权限信息是允许用户A修改订单,修改订单还涉及修改订单的时间、金额等内容,而修改订单的功能允许用户A修改其中订单的时间,不允许用户A修改其中订单的金额。权限信息还可以是允许用户B修改订单,并且能够修改订单的时间和订单的金额。指示修改订单的时间的业务逻辑代码中标记了用户A的权限和用户B的权限(如用户A=true,用户B=true),指示修改订单的金额的业务逻辑代码中标记了用户B的权限(如用户B=true),那么,用户A在指示修改订单的时间时,权限检查代码检查指示修改订单的时间的业务逻辑代码中标记了用户A=true,则确定该用户A可以修改订单的时间;用户A在指示修改订单的金额时,权限检查代码检查指示修改订单金额的业务逻辑代码中没有标记用户A=true,则确定该用户A不可以修改订单的金额。而用户B在指示修改订单的金额时,权限检查代码检查指示修改订单金额的业务逻辑代码中有标记用户B=true,则确定该用户B可以修改订单的金额。权限信息标注在业务逻辑代码中,在执行业务逻辑代码之前,权限检查代码先校验标注在业务逻辑代码中的权限信息,在校验通过后执行标注有权限信息的业务逻辑代码。由于校验信息不是由用户携带,增加了权限信息的安全性。
可选地,权限信息包括以下至少一种信息:采用可扩展标记语言注释在业务逻辑代码前端的权限信息;采用注解配置化的方式在业务逻辑代码前端的权限信息。
标注的权限信息即可以是对预定的包路径下的业务逻辑代码的进一步控制,还可以是对不再预定的包路径下的业务逻辑代码的单独控制,通过在业务逻辑代码中标注权限信息增加了权限控制的灵活性,由于标注的权限信息也是在运行业务逻辑代码之前进行权限校验的,因此,不需要业务逻辑代码调用权限校验,解决现有技术中业务逻辑代码的运行效率比较低的技术问题,达到了提高业务逻辑代码的运行效率的技术效果。
通过上述实施例,可以通过面向切面编程将业务逻辑代码和权限检查代码分离,权限检查代码不由业务逻辑代码调用,而是在运行业务逻辑代码之前、请求执行业务逻辑代码之后调用权限检查代码,在权限检查代码确定权限验证通过,可以运行业务逻辑代码之后,再运行业务逻辑代码,避免了现有技术中业务逻辑代码和权限检查代码混在一起,在业务逻辑代码运行之后再调用权限检查代码而造成的业务逻辑代码的编码复杂且调用关系复杂的问题,进而解决了现有技术中业务逻辑代码的运行效率比较低的技术问题,达到了提高业务逻辑代码的运行效率的技术效果。
另外,可以采用多种方式对业务逻辑代码进行控制,增加了权限的数据处理的灵活性。同时,标注的权限信息也是在运行业务逻辑代码之前进行权限校验的,因此,不需要业务逻辑代码调用权限校验,解决现有技术中业务逻辑代码的运行效率比较低的技术问题,达到了提高业务逻辑代码的运行效率的技术效果。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种权限数据的处理方法,其特征在于,包括:
在接收到执行业务逻辑代码所对应功能的请求之后,调用权限检查代码进行权限校验,得到校验结果,其中,所述业务逻辑代码和所述权限检查代码处于分离状态,所述业务逻辑代码用于指示执行预定功能,所述权限检查代码用于对预定功能的权限进行校验;
判断所述校验结果是否指示运行所述业务逻辑代码;以及
在判断出所述校验结果指示运行所述业务逻辑代码后,运行所述业务逻辑代码;
其中,所述业务逻辑代码包括保存在预定的包路径下具有相同权限信息的业务逻辑代码,所述具有相同权限信息的业务逻辑代码包括第一业务逻辑代码和第二业务逻辑代码,在判断出所述校验结果指示运行所述业务逻辑代码后,运行所述业务逻辑代码包括:在判断出校验结果指示运行所述第一业务逻辑代码之后,运行所述第一业务逻辑代码;接收指示信息,所述指示信息用于指示所述预定的包路径下的第二业务逻辑代码运行;根据所述指示信息运行所述第二业务逻辑代码。
2.根据权利要求1所述的方法,其特征在于,调用所述权限检查代码进行权限校验包括:
获取所述业务逻辑代码的权限信息,其中,所述业务逻辑代码的权限信息为标注在所述业务逻辑代码中的信息;
调用所述权限检查代码对所述业务逻辑代码的权限信息进行校验。
3.根据权利要求2所述的方法,其特征在于,所述权限信息包括以下至少一种信息:
采用可扩展标记语言注释在所述业务逻辑代码前端的权限信息;
采用注解配置化的方式在所述业务逻辑代码前端的权限信息。
4.根据权利要求1所述的方法,其特征在于,所述业务逻辑代码和权限检查代码采用面向切面编程进行分离。
5.一种权限数据的处理装置,其特征在于,包括:
调用单元,用于在接收到执行业务逻辑代码所对应功能的请求之后,调用权限检查代码进行权限校验,得到校验结果,其中,所述业务逻辑代码和所述权限检查代码处于分离状态,所述业务逻辑代码用于指示执行预定功能,所述权限检查代码用于对预定功能的权限进行校验;
判断单元,用于判断所述校验结果是否指示运行所述业务逻辑代码;以及
运行单元,用于在判断出所述校验结果指示运行所述业务逻辑代码后,运行所述业务逻辑代码;
其中,所述业务逻辑代码包括保存在预定的包路径下具有相同权限信息的业务逻辑代码,所述具有相同权限信息的业务逻辑代码包括第一业务逻辑代码和第二业务逻辑代码,所述运行单元包括:第一运行模块,用于在判断出校验结果指示运行所述第一业务逻辑代码之后,运行所述第一业务逻辑代码;接收模块,用于接收指示信息,所述指示信息用于指示所述预定的包路径下的第二业务逻辑代码运行;第二运行模块,用于根据所述指示信息运行所述第二业务逻辑代码。
6.根据权利要求5所述的装置,其特征在于,所述调用单元包括:
获取模块,用于获取所述业务逻辑代码的权限信息,其中,所述业务逻辑代码的权限信息为标注在所述业务逻辑代码中的信息;
调用模块,用于调用所述权限检查代码对所述业务逻辑代码的权限信息进行校验。
7.根据权利要求6所述的装置,其特征在于,所述权限信息包括以下至少一种信息:
采用可扩展标记语言注释在所述业务逻辑代码前端的权限信息;
采用注解配置化的方式在所述业务逻辑代码前端的权限信息。
8.根据权利要求5所述的装置,其特征在于,所述业务逻辑代码和权限检查代码采用面向切面编程进行分离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510575317.2A CN106529229B (zh) | 2015-09-10 | 2015-09-10 | 权限数据的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510575317.2A CN106529229B (zh) | 2015-09-10 | 2015-09-10 | 权限数据的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106529229A CN106529229A (zh) | 2017-03-22 |
CN106529229B true CN106529229B (zh) | 2019-06-18 |
Family
ID=58346128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510575317.2A Active CN106529229B (zh) | 2015-09-10 | 2015-09-10 | 权限数据的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106529229B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885982B (zh) * | 2017-09-29 | 2021-08-24 | 五八有限公司 | 登录控制处理方法及终端 |
CN109088858B (zh) * | 2018-07-13 | 2021-09-21 | 南京邮电大学 | 一种基于权限管理的医疗***及方法 |
CN112650488A (zh) * | 2019-10-12 | 2021-04-13 | 上海际链网络科技有限公司 | 参数校验方法及装置、存储介质、服务终端 |
CN110727929B (zh) * | 2019-10-12 | 2021-07-30 | 北京明略软件***有限公司 | 基于aop的行级权限控制方法、装置及客户端 |
CN110795709B (zh) * | 2019-10-31 | 2022-08-12 | 北京达佳互联信息技术有限公司 | 一种进行业务操作的方法、装置和电子设备及存储介质 |
CN112818391A (zh) * | 2021-01-26 | 2021-05-18 | 四川天翼网络服务有限公司 | 一种基于切面编程的权限控制方法 |
CN113722733A (zh) * | 2021-08-27 | 2021-11-30 | 北京航天云路有限公司 | 一种基于Java注解实现的数据访问权限控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851724A (zh) * | 2005-07-13 | 2006-10-25 | 华为技术有限公司 | 一种业务数据操作控制方法与业务*** |
CN101414253A (zh) * | 2007-10-17 | 2009-04-22 | 华为技术有限公司 | 一种权限管理方法及*** |
CN103049684A (zh) * | 2012-12-21 | 2013-04-17 | 大唐软件技术股份有限公司 | 一种基于rbac模型扩展的数据权限控制方法和*** |
-
2015
- 2015-09-10 CN CN201510575317.2A patent/CN106529229B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851724A (zh) * | 2005-07-13 | 2006-10-25 | 华为技术有限公司 | 一种业务数据操作控制方法与业务*** |
CN101414253A (zh) * | 2007-10-17 | 2009-04-22 | 华为技术有限公司 | 一种权限管理方法及*** |
CN103049684A (zh) * | 2012-12-21 | 2013-04-17 | 大唐软件技术股份有限公司 | 一种基于rbac模型扩展的数据权限控制方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN106529229A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106529229B (zh) | 权限数据的处理方法和装置 | |
US11467952B2 (en) | API driven continuous testing systems for testing disparate software | |
US8234692B2 (en) | System and method for processing an upload of a program with export compliance information | |
CN109286633A (zh) | 单点登陆方法、装置、计算机设备及存储介质 | |
CN108762803A (zh) | 一种配置管理方法、装置、终端设备及存储介质 | |
CN103020826B (zh) | 支付处理方法和服务器 | |
CN110221968A (zh) | 软件测试方法及相关产品 | |
CN109284198A (zh) | 一种校验数据的方法和装置 | |
CN104281611A (zh) | 网站测试***中的用户流量分配方法及装置 | |
CN104978530B (zh) | 一种应用安全管理方法、装置、服务器以及*** | |
CN108388512B (zh) | 数据处理方法和服务器 | |
CN106649638B (zh) | 一种大数据获取方法 | |
CN107844588A (zh) | 一种数据字典的处理方法、装置、存储介质及处理器 | |
CN112148582B (zh) | 策略测试方法及装置、计算机可读介质和电子设备 | |
CN109799985A (zh) | 前端代码生成方法及装置、存储介质及电子设备 | |
CN105553671B (zh) | 一种数字证书的管理方法、装置及*** | |
US10824541B1 (en) | System and method for test data fabrication | |
CN107766124A (zh) | 一种web表单的自动验证方法以及装置 | |
CN105099983A (zh) | 授权方法、权限设置方法及装置 | |
CN107220169B (zh) | 一种模拟服务器返回定制化数据的方法和设备 | |
CN112711640A (zh) | 一种业务受理流程配置的方法及装置 | |
CN111221727A (zh) | 测试方法、装置、电子设备和计算机可读介质 | |
CN109408092A (zh) | 前端版本发布的方法及装置、存储介质及电子设备 | |
CN106570684A (zh) | 信息修改的方法及装置 | |
CN103685259B (zh) | 账户登录的方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |