CN113849789A - 基于aop的权限校验方法、装置、设备及存储介质 - Google Patents
基于aop的权限校验方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113849789A CN113849789A CN202111149516.9A CN202111149516A CN113849789A CN 113849789 A CN113849789 A CN 113849789A CN 202111149516 A CN202111149516 A CN 202111149516A CN 113849789 A CN113849789 A CN 113849789A
- Authority
- CN
- China
- Prior art keywords
- authority
- service
- permission
- acquisition request
- verification
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 174
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000008859 change Effects 0.000 claims description 10
- 238000012508 change request Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000004573 interface analysis Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 11
- 230000003287 optical effect Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及网络安全领域,公开了一种基于AOP的权限校验方法、装置、设备及存储介质,用于解决现有技术中的权限校验方法中权限校验代码的运行效率低的技术问题。该方法包括:接收来自用户的业务获取请求,并提取业务获取请求对应的业务接口;判断业务接口是否需要进行权限验证;若是,则提取业务接口的权限等级要求,并将业务获取请求接入预先构建的权限验证切面中;解析业务获取请求中包含的操作权限等级;判断操作权限等级是否满足权限等级要求;若是,则通过权限验证,将业务获取请求接入业务接口。此外,本发明还涉及区块链技术,权限校验的相关信息可存储于区块链中。
Description
技术领域
本发明涉及网络安全领域,尤其涉及一种基于AOP的权限校验方法、装置、设备及存储介质。
背景技术
在软件或者网页的应用系统中往往会接收各种业务获取请求,其中不同的业务获取请求中会包含有不同的权限要求,有些业务是所有用户均可以获取并使用,有些业务需要对用户的权限等级进行校验,确定用户的权限等级满足要求后才可以接入。例如,某些后台管理系统,可以根据每个不同用户的权限等级显示不同的功能菜单以及提供不同的业务功能,以免出现越权的情况。
在现有的技术中,对于每个接口对当前用户请求访问接口的用户单独进行校验以避免出现越权,但对于每个接口都做用户权限校验会导致系统的重复代码增加,引起代码冗余,导致权限校验的相关代码不能复用,运行效率低。
发明内容
本发明的主要目的在于解决现有技术中的权限校验方法中权限校验代码不能复用,运行效率低的技术问题。
本发明第一方面提供了一种基于AOP的权限校验方法,包括:接收来自用户的业务获取请求,并提取所述业务获取请求对应的业务接口;判断所述业务接口是否需要进行权限验证;若是,则提取所述业务接口的权限等级要求,并将所述业务获取请求接入预先构建的权限验证切面中;解析所述业务获取请求中包含的操作权限等级;判断所述操作权限等级是否满足所述权限等级要求;若是,则通过权限验证,将所述业务获取请求接入所述业务接口。
可选的,在本发明第一方面的第一种实现方式中,所述判断所述业务接口是否需要进行权限验证包括:解析所述业务接口中包含的注解内容,得到接口注解字段;查找所述接口注解字段中是否包含有permissionValid字段,其中,所述permissionValid字段上标识有Before字段;若是,则判断为需要进行权限验证。
可选的,在本发明第一方面的第二种实现方式中,所述提取所述业务接口的权限等级要求包括:提取所述业务获取请求中包含的用户令牌;解析所述用户令牌得到用户编码;根据所述用户编码在预置的权限数据库中查询出对应的操作权限等级。
可选的,在本发明第一方面的第三种实现方式中,所述解析所述业务获取请求中包含的操作权限等级包括:解析所述接口注解字段,提取所述接口注解字段中预先配置的成员变量;根据所述成员变量在预置的权限数据库中查找出可以访问所述成员变量的全部权限等级,得到权限等级范围;在所述权限等级范围中查找出最低的权限等级,得到权限等级要求。
可选的,在本发明第一方面的第四种实现方式中,在所述通过权限验证,将所述业务获取请求接入所述业务接口之后,还包括:响应于权限更改请求,提取权限更改请求中包含的成员变量的权限更改信息,其中,所述成员变量为至少一个;根据所述权限更改信息对所述权限数据库中所述成员变量对应的权限等级数据进行更新。
可选的,在本发明第一方面的第五种实现方式中,在所述接收来自用户的业务获取请求之前,还包括:获取需要进行权限验证的业务接口中包含的成员变量;提取所述成员变量的种类以及可以访问所述成员变量的权限等级要求;根据所述成员变量种类和所述权限等级要求构建权限校验代码注解;获取业务接口源代码,向所述业务接口源代码中打上所述权限校验代码注解,并将所述切入类型设置为前置切入,得到权限验证切面。
本发明第二方面提供了一种基于AOP的权限校验装置,包括:接收模块,用于接收来自用户的业务获取请求,并提取所述业务获取请求对应的业务接口;第一判断模块,用于判断所述业务接口是否需要进行权限验证;切面接入模块,用于若是,则提取所述业务接口的权限等级要求,并将所述业务获取请求接入预先构建的权限验证切面中;解析模块,用于解析所述业务获取请求中包含的操作权限等级;第二判断模块,用于判断所述操作权限等级是否满足所述权限等级要求;请求接入模块,用于若是,则通过权限验证,将所述业务获取请求接入所述业务接口。
可选的,在本发明第二方面的第一种实现方式中,所述第一判断模块包括:接口解析单元,用于解析所述业务接口中包含的注解内容,得到接口注解字段;字段查找单元,用于查找所述接口注解字段中是否包含有permissionValid字段,其中,所述permissionValid字段上标识有Before字段;结果判定单元,用于若是,则判断为需要进行权限验证。
可选的,在本发明第二方面的第二种实现方式中,所述切面接入模块包括:令牌提取单元,用于提取所述业务获取请求中包含的用户令牌;令牌解析单元,用于解析所述用户令牌得到用户编码;等级查询单元,用于根据所述用户编码在预置的权限数据库中查询出对应的操作权限等级。
可选的,在本发明第二方面的第三种实现方式中,所述解析模块包括:提取单元,用于解析所述接口注解字段,提取所述接口注解字段中预先配置的成员变量;范围查找单元,用于根据所述成员变量在预置的权限数据库中查找出可以访问所述成员变量的全部权限等级,得到权限等级范围;等级要求查找单元,用于在所述权限等级范围中查找出最低的权限等级,得到权限等级要求。
可选的,在本发明第二方面的第四种实现方式中,所述基于AOP的权限校验装置还包括等级更新模块,所述等级更新模块具体用于:响应于权限更改请求,提取权限更改请求中包含的成员变量的权限更改信息,其中,所述成员变量为至少一个;根据所述权限更改信息对所述权限数据库中所述成员变量对应的权限等级数据进行更新。
可选的,在本发明第二方面的第五种实现方式中,所述基于AOP的权限校验装置还包括切面构建模块,所述切面构建模块具体用于:获取需要进行权限验证的业务接口中包含的成员变量;提取所述成员变量的种类以及可以访问所述成员变量的权限等级要求;据所述成员变量种类和所述权限等级要求构建权限校验代码注解;获取业务接口源代码,向所述业务接口源代码中打上所述权限校验代码注解,并将所述切入类型设置为前置切入,得到权限验证切面。
本发明第三方面提供了一种基于AOP的权限校验设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于AOP的权限校验设备执行上述的基于AOP的权限校验方法的步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于AOP的权限校验方法的步骤。
本发明提供的技术方案中,接收来自用户的业务获取请求,并提取业务获取请求对应的业务接口;判断业务接口是否需要进行权限验证;若是,则提取业务接口的权限等级要求,并将业务获取请求接入预先构建的权限验证切面中;解析业务获取请求中包含的操作权限等级;判断操作权限等级是否满足权限等级要求;若是,则通过权限验证,将业务获取请求接入业务接口。本发明实施例中,将需要进行权限验证的业务获取请求接入预先构建的权限验证切面中进行权限验证,将通过验证的请求接入业务接口,使得权限校验代码与业务请求代码分离,提高权限校验代码的运行效率。
附图说明
图1为本发明实施例中基于AOP的权限校验方法的第一实施例的示意图;
图2为本发明实施例中基于AOP的权限校验方法的第二实施例的示意图;
图3为本发明实施例中基于AOP的权限校验方法的第三实施例的示意图;
图4为本发明实施例中基于AOP的权限校验装置的一个实施例示意图;
图5为本发明实施例中基于AOP的权限校验装置的另一个实施例示意图;
图6为本发明实施例中基于AOP的权限校验设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于AOP的权限校验方法、装置、设备及存储介质,将需要进行权限验证的业务获取请求接入预先构建的权限验证切面中进行权限验证,将通过验证的请求接入业务接口,使得权限校验代码与业务请求代码分离,提高权限校验代码的运行效率。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于AOP的权限校验方法的一个实施例包括:
101、接收来自用户的业务获取请求,并提取业务获取请求对应的业务接口;
可以理解的是,本发明的执行主体可以为基于AOP的权限校验装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明;其中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在软件或者网页的应用系统中往往会接收各种业务获取请求,其中不同的业务获取请求中会包含有不同的权限要求,有些业务是所有用户均可以获取并使用,有些业务需要对用户的权限等级进行校验,确定用户的权限等级满足要求后才可以接入。
本实施例中,用户在网页前端或客户端的前端进行操作,发出业务获取请求,后台接收到来自用户的业务获取请求,解析所述业务获取请求对应的具体业务,并提取出其具体对应的业务接口的接口地址。例如,某些后台管理系统,可以根据每个不同用户的权限等级显示不同的功能菜单以及提供不同的业务功能,以免出现越权的情况;在本实施例中,服务器接收到菜单获取请求,则根据菜单获取请求中包含的目标菜单,确定该菜单展示的业务接口。
102、判断业务接口是否需要进行权限验证;
提取到业务的接口地址后,判断该业务接口上需要进行权限验证,具体地,判断所述业务接口上是否添加有权限校验相关的注解字段,若业务接口上添加有权限校验相关的注解字段,则认为该接口需要进行权限验证。
103、若是,则提取业务接口的权限等级要求,并将业务获取请求接入预先构建的权限验证切面中;
若当前业务接口需要进行权限验证,则根据接口上配置的所述权限校验相关的注解字段将所述业务请求拦截;对业务接口进行解析,提取所述业务接口的权限等级要求;具体地,预先根据不同的业务功能对业务接口的权限等级要求进行配置,并将各接口功能对应的权限等级要求预存至接口权限数据库中;随后,将拦截到的业务获取请求接入预先配置的权限验证切面中。
其中,本步骤中所述权限验证切面是基于AOP(Aspect Oriented Programming,面向切面编程)构建的,AOP是通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术,是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率;所述注解字段是预先在业务接口上根据JAVA注解功能预先配置的,JAVA注解是为代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。
104、解析业务获取请求中包含的操作权限等级;
解析业务获取请求,获取当前业务获取请求的操作权限等级,其中,本步骤中的业务获取请求可以根据获取的具体业务类型判断次业务获取请求的操作权限等级,也可以通过发出业务获取请求的用户的具体用户信息判断所述业务获取请求中包含的操作权限等级。
所述业务获取请求的操作权限等级是预先根据请求类型配置好的,以便后续根据不同的需求展示不同的数据信息或响应不同的操作。
105、判断操作权限等级是否满足权限等级要求;
106、若是,则通过权限验证,将业务获取请求接入业务接口。
判断前述步骤中得到的用户的具体操作权限等级是否满足所述业务接口的操作权限等级要求,若是,则通过权限验证,并将所述业务获取请求接入所述业务接口;若否,则返回权限效验失败。
本发明实施例中,将需要进行权限验证的业务获取请求接入预先构建的权限验证切面中进行权限验证,将通过验证的请求接入业务接口,使得权限校验代码与业务请求代码分离,使得权限效验代码可以重复使用,提高权限校验代码的运行效率。
请参阅图2,本发明实施例中基于AOP的权限校验方法的第二实施例包括:
201、接收来自用户的业务获取请求,并提取业务获取请求对应的业务接口;
本实施例中,用户在网页前端或客户端的前端进行操作,发出业务获取请求,后台接收到来自用户的业务获取请求,解析所述业务获取请求对应的具体业务,并提取出其具体对应的业务接口的接口地址。
202、判断业务接口是否需要进行权限验证;
提取到业务的接口地址后,判断该业务接口上需要进行权限验证,具体地,判断所述业务接口上是否添加有权限校验相关的注解字段,若有,根据所述权限校验相关的注解字段将所述业务请求进行拦截,将拦截到的业务获取请求接入预先配置的权限验证切面中。
203、若是,则提取业务获取请求中包含的用户令牌;
204、解析用户令牌得到用户编码;
提取所述业务获取请求中携带的发出该业务获取请求的用户的用户令牌(token),解析该用户令牌得到发出该业务请求的用户在系统中的用户编码。
具体地,本实施例中所述的用户令牌包含三个部分,头部(header)、有效载荷(payload)、签名(signature),其中,头部由typ(type,类型)和alg(algorithm,算法)组成,其具体类型可以自定义;有效载荷里面是令牌的具体内容,为一个Json字符串,其内容可以为标准字段,或自定义的添加的其它内容;其具体用来承载要传递的数据,有效载荷的Json结构实际上是对JWT要传递的数据的一组声明,这些声明被JWT(Json web token)标准称为Claims,JWT默认提供了一些标准的Claim,其中,可以包括这个JWT签发的主体的编码;签名的组成是,把头部和、有效载荷分别进行编码,然后拼接在一起得到的
在本实施例中,所述签发的主体的编码即为用户编码。在接收用户令牌后,根据预置的秘钥对用户令牌进行解析,得到对应的用户编码。
205、根据用户编码在预置的权限数据库中查询出对应的操作权限等级;
得到用户编码后,根据用户编码在系统数据库中预置的用户信息中查询用户编码对应的用户角色,具体地,本实施例中,预先在权限数据库中保存有用户信息表和角色菜单信息表,其中,所述用户信息表中包含有用户编码以及用户的具体角色关联信息;所述角色角色菜单信息表中包含有用户角色和用户角色和菜单权限的对应信息。在用户信息表中根据用户编码查询到所述用户的具体角色,并根据角色菜单信息表获取到当前用户角色可以访问和/或操作的菜单的具体权限等级。
举具体的例子进行说明,若当前业务中包括“查看”、“导入”、“导出”和“删除”的菜单操作请求,且预先配置的角色菜单信息表中配置的权限等级要求为权限等级为“游客”的用户仅可以进行查看操作,权限等级为“管理员”的用户可以进行“查看”、“导入”、“导出”和“删除”操作,则根据当前业务接口的目标操作,提取出具体的权限等级要求。
206、将业务获取请求接入预先构建的权限验证切面中;
提取到业务的接口地址后,判断该业务接口上需要进行权限验证,具体地,判断所述业务接口上是否添加有权限校验相关的注解字段,若有,根据所述权限校验相关的注解字段将所述业务请求进行拦截,将拦截到的业务获取请求接入预先配置的权限验证切面中。
207、解析接口注解字段,提取接口注解字段中预先配置的成员变量;
本实施例中,将业务请求拦截后接入基于AOP构建的权限验证切面中进行具体的权限验证。首先,解析该业务接口上的注解字段,获取该接口注解字段中预先配置的成员变量。
举具体的例子进行说明,如欲对发出获取菜单操作请求的用户进行权限验证时,预先在相关的菜单业务接口上定义权限校验注解,把菜单操作资源(如直播课列表)、菜单操作类型(如直播课列表导出操作)等作为注解的属性字段,该注解的两个成员变量分别设置为直播课列表菜单和直播课列表导出操作。
208、根据成员变量在预置的权限数据库中查找出可以访问成员变量的全部权限等级,得到权限等级范围;
209、在权限等级范围中查找出最低的权限等级,得到权限等级要求;
获得成员变量的具体信息后,根据成员变量的具体信息,在预置的权限数据库中查找出可以访问成员变量的全部权限等级。
具体地,根据前述步骤中所述,在权限数据库中保存有用户信息表和角色菜单信息表;其中包含有预设的每种用户的角色信息,如普通用户、管理员用户等;还包含有菜单具体内容和菜单的具体操作、并且设定了每种用户角色与菜单的关联配置信息。
根据解析得到接口注解字段中的成员变量具体信息后,调用权限校验接口,根据权限数据库中的上述信息表,查询出可以访问成员变量的全部权限等级,得到权限等级范围,并获取该权限等级范围中查找出最低的权限等级,得到权限等级要求。
210、判断操作权限等级是否满足权限等级要求;
211、若是,则通过权限验证,将业务获取请求接入业务接口。
根据前述步骤中获取到的用户编码信息对应的用户操作权限等级与权限等级要求进行对比,判断前述步骤中得到的用户的具体操作权限等级是否满足所述业务接口的操作权限等级要求,若是,则通过权限验证,并将所述业务获取请求接入所述业务接口;若否,则返回权限效验失败。
本发明实施例中,将需要进行权限验证的业务获取请求接入预先构建的权限验证切面中进行权限验证,将通过验证的请求接入业务接口,使得权限校验代码与业务请求代码分离,使得权限效验代码可以重复使用,提高权限校验代码的运行效率。
请参阅图3,本发明实施例中基于AOP的权限校验方法的第三实施例包括:
301、获取需要进行权限验证的业务接口中包含的成员变量;
302、提取成员变量的种类以及可以访问成员变量的权限等级要求;
303、根据成员变量种类和权限等级要求构建权限校验代码注解;
提取需要进行权限验证的业务接口的成员变量,在一个具体的例子中,所述成员变量可以为列表菜单获取操作和列表导出操作。提取预先配置好的成员变量对应的权限等级要求,将成员变量种类作为注解的属性字段,根据预先配置的权限等级要求构建权限校验代码注解。
如欲对发出获取菜单操作请求的用户进行权限验证时,把菜单操作资源(如直播课列表)、菜单操作类型(如直播课列表导出操作)等做为注解的属性字段,该注解的两个成员变量分别设置为直播课列表菜单和直播课列表导出操作,根据前述的成员变量种类和权限等级要求构建出权限校验代码注解。
304、获取业务接口源代码,向业务接口源代码中打上权限校验代码注解,并将切入类型设置为前置切入,得到权限验证切面;
获取业务接口源代码,给业务接口定义一个权限校验注解,并把前述步骤的注解代码配置到接口上,如上步骤所述,注解的这两个成员变量分别设置为列表菜单和列表导出操作,这样就标识了能访问业务接口的用户必须配置了某个角色,这个角色的权限包括列表菜单权限和列表导出权限。
随后,定义一个AOP切面类,设置切入的类型为前置切入,以确保AOP切面在执行接口逻辑之前执行,具体地切点为上一步自定义的注解。具体地,通过@Before标识点为permissionValid的注解,凡是接口上加了这个注解的都会先进入@Before标识的这个切面中进行权限验证,从而得到构建完毕的权限验证切面。
305、接收来自用户的业务获取请求,并提取业务获取请求对应的业务接口;
用户在网页前端或客户端的前端进行操作,发出业务获取请求,后台接收到来自用户的业务获取请求,解析所述业务获取请求对应的具体业务,并提取出其具体对应的业务接口的接口地址。
306、解析业务接口中包含的注解内容,得到接口注解字段;
307、查找接口注解字段中是否包含有permissionValid字段;
308、若是,则判断为需要进行权限验证,提取业务获取请求中包含的用户令牌;
根据所述接口地址获取业务接口中包含的注解内容,解析业务接口中包含的注解内容,得到接口注解字段;查找接口注解字段中是否包含有permissionValid字段,若有,则说明该业务接口需要进行权限验证。其中,permissionValid字段上标识有@Before字段。
309、解析用户令牌得到用户编码;
提取所述业务获取请求中携带的发出该业务获取请求的用户的用户令牌(token),解析该用户令牌得到发出该业务请求的用户在系统中的用户编码。
310、根据用户编码在预置的权限数据库中查询出对应的操作权限等级;
得到用户编码后,根据用户编码在权限数据库中预置的用户信息中查询用户编码对应的用户角色,并根据角色菜单信息表获取到当前用户角色可以访问和/或操作的菜单的具体权限等级。
311、将业务获取请求接入预先构建的权限验证切面中;
提取到业务的接口地址后,判断该业务接口上需要进行权限验证,具体地,判断所述业务接口上是否添加有权限校验相关的注解字段,若有,根据所述权限校验相关的注解字段将所述业务请求进行拦截,将拦截到的业务获取请求接入预先配置的权限验证切面中。
312、解析接口注解字段,提取接口注解字段中预先配置的成员变量;
本实施例中,将业务请求拦截后接入基于AOP构建的权限验证切面中进行具体的权限验证。首先,解析该业务接口上的注解字段,获取该接口注解字段中预先配置的成员变量。
313、根据成员变量在预置的权限数据库中查找出可以访问成员变量的全部权限等级,得到权限等级范围;
314、在权限等级范围中查找出最低的权限等级,得到权限等级要求;
根据解析得到接口注解字段中的成员变量具体信息后,调用权限校验接口,根据权限数据库中的上述信息表,查询出可以访问成员变量的全部权限等级,得到权限等级范围,并获取该权限等级范围中查找出最低的权限等级,得到权限等级要求。
315、判断操作权限等级是否满足权限等级要求;
316、若是,则通过权限验证,将业务获取请求接入业务接口。
根据前述步骤中获取到的用户编码信息对应的用户操作权限等级与权限等级要求进行对比,判断前述步骤中得到的用户的具体操作权限等级是否满足所述业务接口的操作权限等级要求,若是,则通过权限验证,并将所述业务获取请求接入所述业务接口;若否,则返回权限效验失败。
此外,本实施例中还可以针对权限等级数据进行更改,从而更新权限验证的具体内容;响应于权限更改请求,提取权限更改请求中包含的成员变量的权限更改信息,其中,成员变量为至少一个;根据权限更改信息对权限数据库中成员变量对应的权限等级数据进行更新。
本发明实施例中,将需要进行权限验证的业务获取请求接入预先构建的权限验证切面中进行权限验证,将通过验证的请求接入业务接口,使得权限校验代码与业务请求代码分离,使得权限效验代码可以重复使用,提高权限校验代码的运行效率。
上面对本发明实施例中基于AOP的权限校验方法进行了描述,下面对本发明实施例中基于AOP的权限校验装置进行描述,请参阅图4,本发明实施例中基于AOP的权限校验装置一个实施例包括:
接收模块401,用于接收来自用户的业务获取请求,并提取所述业务获取请求对应的业务接口;
第一判断模块402,用于判断所述业务接口是否需要进行权限验证;
切面接入模块403,用于若是,则提取所述业务接口的权限等级要求,并将所述业务获取请求接入预先构建的权限验证切面中;
解析模块404,用于解析所述业务获取请求中包含的操作权限等级;
第二判断模块405,用于判断所述操作权限等级是否满足所述权限等级要求;
请求接入模块406,用于若是,则通过权限验证,将所述业务获取请求接入所述业务接口。
本发明实施例中,将需要进行权限验证的业务获取请求接入预先构建的权限验证切面中进行权限验证,将通过验证的请求接入业务接口,使得权限校验代码与业务请求代码分离,提高权限校验代码的运行效率。
请参阅图5,本发明实施例中基于AOP的权限校验装置的另一个实施例包括:
接收模块401,用于接收来自用户的业务获取请求,并提取所述业务获取请求对应的业务接口;
第一判断模块402,用于判断所述业务接口是否需要进行权限验证;
切面接入模块403,用于若是,则提取所述业务接口的权限等级要求,并将所述业务获取请求接入预先构建的权限验证切面中;
解析模块404,用于解析所述业务获取请求中包含的操作权限等级;
第二判断模块405,用于判断所述操作权限等级是否满足所述权限等级要求;
请求接入模块406,用于若是,则通过权限验证,将所述业务获取请求接入所述业务接口。
在本申请的另一实施例中,所述第一判断模块402包括:
接口解析单元4021,用于解析所述业务接口中包含的注解内容,得到接口注解字段;
字段查找单元4022,用于查找所述接口注解字段中是否包含有permissionValid字段,其中,所述permissionValid字段上标识有Before字段;
结果判定单元4023,用于若是,则判断为需要进行权限验证。
在本申请的另一实施例中,所述切面接入模块403包括:
令牌提取单元4031,用于提取所述业务获取请求中包含的用户令牌;
令牌解析单元4032,用于解析所述用户令牌得到用户编码;
等级查询单元4033,用于根据所述用户编码在预置的权限数据库中查询出对应的操作权限等级。
在本申请的另一实施例中,所述解析模块404包括:
提取单元4041,用于解析所述接口注解字段,提取所述接口注解字段中预先配置的成员变量;
范围查找单元4042,用于根据所述成员变量在预置的权限数据库中查找出可以访问所述成员变量的全部权限等级,得到权限等级范围;
等级要求查找单元4043,用于在所述权限等级范围中查找出最低的权限等级,得到权限等级要求。
在本申请的另一实施例中,所述基于AOP的权限校验装置还包括等级更新模块407,所述等级更新模块407具体用于:
响应于权限更改请求,提取权限更改请求中包含的成员变量的权限更改信息,其中,所述成员变量为至少一个;
根据所述权限更改信息对所述权限数据库中所述成员变量对应的权限等级数据进行更新。
在本申请的另一实施例中,所述基于AOP的权限校验装置还包括切面构建模块408,所述切面构建模块408具体用于:
获取需要进行权限验证的业务接口中包含的成员变量;
提取所述成员变量的种类以及可以访问所述成员变量的权限等级要求;
根据所述成员变量种类和所述权限等级要求构建权限校验代码注解;
获取业务接口源代码,向所述业务接口源代码中打上所述权限校验代码注解,并将所述切入类型设置为前置切入,得到权限验证切面。
本发明实施例中,将需要进行权限验证的业务获取请求接入预先构建的权限验证切面中进行权限验证,将通过验证的请求接入业务接口,使得权限校验代码与业务请求代码分离,提高权限校验代码的运行效率。
上面图4和图5从模块化功能实体的角度对本发明实施例中的基于AOP的权限校验装置进行详细描述,下面从硬件处理的角度对本发明实施例中基于AOP的权限校验设备进行详细描述。
图6是本发明实施例提供的一种基于AOP的权限校验设备的结构示意图,该基于AOP的权限校验设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于AOP的权限校验设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在基于AOP的权限校验设备600上执行存储介质630中的一系列指令操作。
基于AOP的权限校验设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的基于AOP的权限校验设备结构并不构成对基于AOP的权限校验设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机设备,该计算机设备可以是能够执行上述实施例中所述的基于AOP的权限校验方法的任何一种设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述基于AOP的权限校验方法的步骤。
本发明实施例中所述的服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于AOP的权限校验方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于AOP的权限校验方法,其特征在于,所述AOP的权限校验方法包括:
接收来自用户的业务获取请求,并提取所述业务获取请求对应的业务接口;
判断所述业务接口是否需要进行权限验证;
若是,则提取所述业务接口的权限等级要求,并将所述业务获取请求接入预先构建的权限验证切面中;
解析所述业务获取请求中包含的操作权限等级;
判断所述操作权限等级是否满足所述权限等级要求;
若是,则通过权限验证,将所述业务获取请求接入所述业务接口。
2.根据权利要求1所述的基于AOP的权限校验方法,其特征在于,所述判断所述业务接口是否需要进行权限验证包括:
解析所述业务接口中包含的注解内容,得到接口注解字段;
查找所述接口注解字段中是否包含有permissionValid字段,其中,所述permissionValid字段上标识有Before字段;
若是,则判断为需要进行权限验证。
3.根据权利要求2所述的基于AOP的权限校验方法,其特征在于,所述提取所述业务接口的权限等级要求包括:
提取所述业务获取请求中包含的用户令牌;
解析所述用户令牌得到用户编码;
根据所述用户编码在预置的权限数据库中查询出对应的操作权限等级。
4.根据权利要求2所述的基于AOP的权限校验方法,其特征在于,所述解析所述业务获取请求中包含的操作权限等级包括:
解析所述接口注解字段,提取所述接口注解字段中预先配置的成员变量;
根据所述成员变量在预置的权限数据库中查找出可以访问所述成员变量的全部权限等级,得到权限等级范围;
在所述权限等级范围中查找出最低的权限等级,得到权限等级要求。
5.根据权利要求3或4所述的基于AOP的权限校验方法,其特征在于,在所述通过权限验证,将所述业务获取请求接入所述业务接口之后,还包括:
响应于权限更改请求,提取权限更改请求中包含的成员变量的权限更改信息,其中,所述成员变量为至少一个;
根据所述权限更改信息对所述权限数据库中所述成员变量对应的权限等级数据进行更新。
6.根据权利要求5所述的基于AOP的权限校验方法,其特征在于,在所述接收来自用户的业务获取请求之前,还包括:
获取需要进行权限验证的业务接口中包含的成员变量;
提取所述成员变量的种类以及可以访问所述成员变量的权限等级要求;
根据所述成员变量种类和所述权限等级要求构建权限校验代码注解;
获取业务接口源代码,向所述业务接口源代码中打上所述权限校验代码注解,并将所述切入类型设置为前置切入,得到权限验证切面。
7.一种基于AOP的权限校验装置,其特征在于,所述基于AOP的权限校验装置包括:
接收模块,用于接收来自用户的业务获取请求,并提取所述业务获取请求对应的业务接口;
第一判断模块,用于判断所述业务接口是否需要进行权限验证;
切面接入模块,用于若是,则提取所述业务接口的权限等级要求,并将所述业务获取请求接入预先构建的权限验证切面中;
解析模块,用于解析所述业务获取请求中包含的操作权限等级;
第二判断模块,用于判断所述操作权限等级是否满足所述权限等级要求;
请求接入模块,用于若是,则通过权限验证,将所述业务获取请求接入所述业务接口。
8.根据权利要求7所述的一种基于AOP的权限校验装置,其特征在于,所述第一判断模块包括:
接口解析单元,用于解析所述业务接口中包含的注解内容,得到接口注解字段;
字段查找单元,用于查找所述接口注解字段中是否包含有permissionValid字段,其中,所述permissionValid字段上标识有Before字段;
结果判定单元,用于若是,则判断为需要进行权限验证。
9.一种基于AOP的权限校验设备,其特征在于,所述基于AOP的权限校验设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于AOP的权限校验设备执行如权利要求1-6中任一项所述的基于AOP的权限校验方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-6中任一项所述基于AOP的权限校验方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111149516.9A CN113849789A (zh) | 2021-09-29 | 2021-09-29 | 基于aop的权限校验方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111149516.9A CN113849789A (zh) | 2021-09-29 | 2021-09-29 | 基于aop的权限校验方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113849789A true CN113849789A (zh) | 2021-12-28 |
Family
ID=78977051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111149516.9A Pending CN113849789A (zh) | 2021-09-29 | 2021-09-29 | 基于aop的权限校验方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113849789A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116155565A (zh) * | 2023-01-04 | 2023-05-23 | 北京夏石科技有限责任公司 | 数据访问控制方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528185A (zh) * | 2015-09-09 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种应用接口管理方法和装置 |
CN110727929A (zh) * | 2019-10-12 | 2020-01-24 | 北京明略软件系统有限公司 | 基于aop的行级权限控制方法、装置及客户端 |
CN111339507A (zh) * | 2020-02-24 | 2020-06-26 | 杭州数梦工场科技有限公司 | 一种访问请求处理的方法、系统、设备及可读存储介质 |
CN111625782A (zh) * | 2020-05-25 | 2020-09-04 | 杭州安恒信息技术股份有限公司 | 源码的访问权限控制方法、装置、计算机设备和存储介质 |
CN111930752A (zh) * | 2020-09-01 | 2020-11-13 | 上海泛微软件有限公司 | 一种数据处理方法及相关设备 |
CN112788031A (zh) * | 2021-01-11 | 2021-05-11 | 百果园技术(新加坡)有限公司 | 基于Envoy架构的微服务接口认证系统、方法及装置 |
-
2021
- 2021-09-29 CN CN202111149516.9A patent/CN113849789A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528185A (zh) * | 2015-09-09 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种应用接口管理方法和装置 |
CN110727929A (zh) * | 2019-10-12 | 2020-01-24 | 北京明略软件系统有限公司 | 基于aop的行级权限控制方法、装置及客户端 |
CN111339507A (zh) * | 2020-02-24 | 2020-06-26 | 杭州数梦工场科技有限公司 | 一种访问请求处理的方法、系统、设备及可读存储介质 |
CN111625782A (zh) * | 2020-05-25 | 2020-09-04 | 杭州安恒信息技术股份有限公司 | 源码的访问权限控制方法、装置、计算机设备和存储介质 |
CN111930752A (zh) * | 2020-09-01 | 2020-11-13 | 上海泛微软件有限公司 | 一种数据处理方法及相关设备 |
CN112788031A (zh) * | 2021-01-11 | 2021-05-11 | 百果园技术(新加坡)有限公司 | 基于Envoy架构的微服务接口认证系统、方法及装置 |
Non-Patent Citations (1)
Title |
---|
罗金涛;: "基于Spring AOP的权限验证实现", 电脑编程技巧与维护, no. 12, 18 June 2009 (2009-06-18), pages 110 - 111 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116155565A (zh) * | 2023-01-04 | 2023-05-23 | 北京夏石科技有限责任公司 | 数据访问控制方法和装置 |
CN116155565B (zh) * | 2023-01-04 | 2023-10-10 | 北京夏石科技有限责任公司 | 数据访问控制方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112615849B (zh) | 微服务访问方法、装置、设备及存储介质 | |
CN114884822B (zh) | 虚拟网络验证服务 | |
AU2015267387B2 (en) | Method and apparatus for automating the building of threat models for the public cloud | |
US9223987B2 (en) | Confidential information identifying method, information processing apparatus, and program | |
CN104067283A (zh) | 识别移动环境的木马化应用程序 | |
CN110839014B (zh) | 一种认证方法、装置、计算机设备及可读存储介质 | |
CN113392415A (zh) | 数据仓库的访问控制方法、系统和电子设备 | |
RU2734027C2 (ru) | Способ и устройство для предотвращения атаки на сервер | |
US9350738B2 (en) | Template representation of security resources | |
Fu et al. | Data correlation‐based analysis methods for automatic memory forensic | |
CN113849789A (zh) | 基于aop的权限校验方法、装置、设备及存储介质 | |
CN111427613A (zh) | 一种应用程序接口api管理方法和装置 | |
CN112015826B (zh) | 基于区块链的智能合约安全性检测方法及相关设备 | |
CN113642025A (zh) | 接口数据处理方法、装置、设备及存储介质 | |
CN105718599A (zh) | 数据库访问数据包解析的方法及装置 | |
CN111241504B (zh) | 身份验证方法、装置、电子设备及存储介质 | |
CN115334145B (zh) | 一种业务处理方法、装置、电子设备及存储介质 | |
CN111273920A (zh) | 一种向安装包写入数据的方法、装置及存储介质 | |
CN114124586B (zh) | 一种网络威胁检测方法及装置 | |
US10469473B2 (en) | Network authentication system extensions | |
CN111585897B (zh) | 请求路由管理方法、系统、计算机系统及可读存储介质 | |
CN111385293B (zh) | 一种网络风险检测方法和装置 | |
CN114925044A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN116070191A (zh) | 信息处理方法及其装置、存储介质、程序产品 | |
CN113177232A (zh) | 基于区块链和大数据的安全性检测方法及大数据ai系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |