本发明涉及前置校验领域,具体涉及一种终端、存储介质、注解方法及系统、前置校验方法及系统。
背景技术:
在springboot项目中,在访问目标类和/或方法前,往往需要进行前置校验,检验通过后才可继续访问。
现有springsecurty(spring框架提供的一个安全组件)提供的角色权限校验注解“@preauthorize”,该注解封装了角色权限校验的相关功能,自带默认的角色权限数据库表结构,支持开发者自定义配置角色权限。开发者在需要权限校验的方法上加上该注解,写入校验规则即可。另外在微服务架构中,网关组件自带的过滤器可以在路由转发前执行一些前置校验。
而现有进行前置校验的技术存在如下几个缺点:
1.@preauthorize注解仅适用于角色权限校验,适用范围较小,无法进行其他功能校验的扩展。
2.网关自带的校验器可以对路由转发进行校验,但是无法实现具体方法的前置校验。
为此,本发明提供一种终端、存储介质、注解方法及系统、前置校验方法及系统,用于解决上述问题。
技术实现要素:
针对现有技术的上述不足,本发明提供一种终端、存储介质、注解方法及系统、前置校验方法及系统,用于增加前置校验的适用范围。
第一方面,本发明提供一种注解方法,该注解方法应用于springboot项目,用于实现前置校验,包括步骤:
新建自定义注解,所述自定义注解中放入一个参数值value,该参数值value记为注解值;
标注上述自定义注解所应用的标注对象;所述标注对象为springboot项目中的类与方法中的任意一种或多种的组合;
新建自定义拦截器;
所述自定义拦截器,用于根据前端访问请求获取标注对象对应的自定义注解中放入的注解值,用于获取前端访问请求中的注解值,并用于比较获取到的前端访问请求中的注解值与获取到的自定义注解中放入的注解值的一致性,若一致则返回true,若不一致则返回false。
进一步地,所述自定义拦截器继承webmvcconfigureradapter类。
第二方面,本发明提供一种注解系统,该注解系统应用于springboot项目,用于实现前置校验,包括:
注解模块,用于新建自定义注解,所述自定义注解中放入一个参数值value,该参数值value记为注解值;
标注模块,用于标注上述自定义注解所应用的标注对象;所述标注对象为springboot项目中的类与方法中的任意一种或多种的组合;
拦截器创建模块,用于新建自定义拦截器;所述自定义拦截器,用于根据前端访问请求获取标注对象对应的自定义注解中放入的注解值,用于获取前端访问请求中的注解值,并用于比较获取到的前端访问请求中的注解值与获取到的自定义注解中放入的注解值,若一致则用于返回true,若不一致则用于返回false。
进一步地,所述自定义拦截器继承webmvcconfigureradapter类。
第三方面,本发明提供一种前置校验方法,该方法基于如上各方面所述的注解方法,包括步骤:
拦截接收前端发送的访问请求;访问请求中包含注解值和请求访问的标注对象;
调用自定义拦截器拦截处理上述拦截接收到的访问请求,接收自定义拦截器返回的处理结果;
依据自定义拦截器返回的处理结果,控制访问请求中请求访问的标注对象是否执行;
其中,自定义拦截器拦截处理上述拦截接收到的访问请求,包括步骤:
获取拦截接收到的访问请求中的注解值,记为第一注解值;
获取拦截接收到的访问请求中请求访问的标注对象,记为目标标注对象;
获取目标标注对象对应的自定义注解中放入的注解值,记为第二注解值;
比较第一注解值与第二注解值是否一致:
若是,则返回true;
若否,则返回false。
第四方面,本发明提供一种前置校验系统,该系统基于如上各方面所述的注解系统,包括:
访问请求拦截单元,用于拦截接收前端发送的访问请求;访问请求中包含注解值和请求访问的标注对象;
自定义拦截器,用于处理访问请求拦截单元拦截接收的访问请求,返回处理结果;
标注对象执行单元,用于依据自定义拦截器返回的处理结果,控制访问请求中请求访问的标注对象是否执行;
其中,自定义拦截器拦截处理前端发送的访问请求,返回处理结果,包括步骤:
获取访问请求拦截单元拦截接收的访问请求中的注解值,记为第一注解值;
获取访问请求拦截单元拦截接收到的访问请求中请求访问的标注对象,记为目标标注对象;
获取目标标注对象对应的自定义注解中放入的注解值,记为第二注解值;
比较第一注解值与第二注解值是否一致:
若是,则返回true;
若否,则返回false。
第五方面,本发明提供一种终端,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行以上各方面所述的注解方法。
第六方面,本发明提供一种终端,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行如上所述的前置校验方法。
第七方面,本发明提供一种存储有计算机程序的计算机可读存储介质,该程序被处理器执行时实现如上各方面所述的注解方法。
第八方面,本发明提供一种存储有计算机程序的计算机可读存储介质,该程序被处理器执行时实现如上各方面所述的前置校验方法。
本发明的有益效果在于,
本发明提供的终端、存储介质、注解方法及系统、前置校验方法及系统,便于用户通过自定义注解和自定义拦截器,实现在需要进行前置校验的方法或类上添加自定义注解,一定程度上增加了前置校验的适用范围,且使用灵活性,便于实现。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的注解方法的示意性流程图。
图2是本发明一个实施例的注解系统的示意性框图。
图3是本发明一个实施例的前置校验方法的示意性流程图。
图4是本发明一个实施例的前置校验系统的示意性框图。
图5为本发明实施例提供的一种终端的结构示意图。
图6是本发明实施例提供的一种计算机存储介质的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1是本发明一个实施例的注解方法的示意性流程图。该注解方法应用于springboot项目,用于实现前置校验。
如图1所示,该注解方法100包括:
步骤110,新建自定义注解,所述自定义注解中传入一个参数值value,该参数值value记为注解值;
步骤120,标注上述自定义注解所应用的标注对象;所述标注对象为springboot项目中的类与方法中的任意一种或多种的组合;
步骤130,新建自定义拦截器;所述自定义拦截器,用于根据前端访问请求获取标注对象对应的自定义注解中放入的注解值,用于获取前端访问请求中的注解值,并用于比较获取到的前端访问请求中的注解值与获取到的自定义注解中放入的注解值的一致性,若一致则返回true,若不一致则返回false。
可选地,作为本发明的一个实施例,所述自定义拦截器继承webmvcconfigureradapter类。
为了便于对本发明的理解,下面以本发明注解方法的原理,以以下场景为实例,对本注解方法100进行说明。
实例:某在线商城做促销活动,根据用户的会员等级(即vip等级)不同可参与不同的促销活动来实现注解,以便在前端访问促销活动方法时进行前置校验。
具体地,该注解方法包括:
步骤p1:新建自定义注解。
具体实现时,编写自定义注解checkvip,该自定义注解checkvip支持传入一个value值(即注解值),该value值为当前用户的vip等级。
步骤p2:标注上述自定义注解所应用的标注对象。
具体地,标注上述自定义注解checkvip所应用的标注对象,即为标注上述自定义注解checkvip可以使用在的类和方法上。比如,在需要校验的方法和类上添加自定义注解checkvip,若某活动需要vip等级是1级才能参加,则注解checkvip需要添加@checkvip("vip:1"),对应有注解值为“1”。
步骤p1和步骤p2的实现代码可参考如下代码:
步骤p3:新建自定义拦截器。
具体地,编写一个自定义拦截器继承handlerinterceptoradapter类,用于获取前端访问请求中的注解值(在本实施例是前端访问请求中用户信息中的vip等级),用于获取自定义注解checkvip中放入的注解值(是一个vip等级),并用于将前述获取到的两个注解值(实际为两个vip等级)作比较,若比较结果为一致则表示用户的vip等级符合该注解方法100的预设,返回true,否则返回false。自定义拦截器的实现代码可参照如下代码:
具体实现时,在继承webmvcconfigureradapter类的拦截器中添加刚才自定义的拦截器,设置拦截的路径规则。具体实现代码可参照如下代码:
图2为本发明所述注解系统的一个实施例。该注解系统应用于springboot项目,用于实现前置校验。
如图2所示,该注解系统200包括:
注解模块201,用于新建自定义注解,所述自定义注解中放入一个参数值value,该参数值value记为注解值;
标注模块202,用于标注上述自定义注解所应用的标注对象;所述标注对象为springboot项目中的类与方法中的任意一种或多种的组合;
拦截器创建模块203,用于新建自定义拦截器;所述自定义拦截器,用于根据前端访问请求获取标注对象对应的自定义注解中放入的注解值,用于获取前端访问请求中的注解值,并用于比较获取到的前端访问请求中的注解值与获取到的自定义注解中放入的注解值,若一致则用于返回true,若不一致则用于返回false。
可选地,所述自定义拦截器继承webmvcconfigureradapter类。
图3是本发明所述前置校验方法的一个实施例。该前置校验方法基于如上所述的注解方法100,应用于springboot项目。
具体地,如图3所示,该前置校验方法,包括步骤:
步骤s1,拦截接收前端发送的访问请求;访问请求中包含注解值和请求访问的标注对象;
步骤s2,调用自定义拦截器拦截处理上述拦截接收到的访问请求,接收自定义拦截器返回的处理结果;
步骤s3,依据自定义拦截器返回的处理结果,控制访问请求中请求访问的标注对象是否执行。
其中,在步骤s2中,自定义拦截器拦截处理上述拦截接收到的访问请求,包括步骤:
获取拦截接收到的访问请求中的注解值,记为第一注解值;
获取拦截接收到的访问请求中请求访问的标注对象,记为目标标注对象;
获取目标标注对象对应的自定义注解中放入的注解值,记为第二注解值;
比较第一注解值与第二注解值是否一致:
若是,则返回true;
若否,则返回false。
在本实施例中,所述步骤s3包括:
在自定义拦截器返回的处理结果为true时,控制访问请求中请求访问的标注对象执行;
在自定义拦截器返回的处理结果为false时,控制访问请求中请求访问的标注对象不执行,并返回错误提示。
图4是本发明所述前置校验系统的一个实施例。该前置校验系统基于如上所述的注解系统,应用于springboot项目。
具体地,如图4所示,该前置校验系统500,包括:
访问请求拦截单元501,用于拦截接收前端发送的访问请求;访问请求中包含注解值和请求访问的标注对象;
自定义拦截器502,用于处理访问请求拦截单元拦截接收的访问请求,返回处理结果;
标注对象执行单元503,用于依据自定义拦截器返回的处理结果,控制访问请求中请求访问的标注对象是否执行。
其中,自定义拦截器502处理访问请求拦截单元501拦截接收的访问请求,返回处理结果,具体包括步骤:
获取访问请求拦截单元501拦截接收的访问请求中的注解值,记为第一注解值;
获取访问请求拦截单元501拦截接收到的访问请求中请求访问的标注对象,记为目标标注对象;
获取目标标注对象对应的自定义注解中放入的注解值,记为第二注解值;
比较第一注解值与第二注解值是否一致:
若是,则返回true;
若否,则返回false。
图5为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的注解方法100。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供另一种终端,该终端可以用于执行本发明实施例提供的前置校验方法,具体可参照本说明书中的终端300及其(终端300)示意性结构图图5。
本发明还提供一种计算机存储介质400,如图6所示,其中,该计算机存储介质400可存储有程序410,该程序410执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。