一种请求拦截方法及装置制造方法及图纸

技术编号:19964642 阅读:26 留言:0更新日期:2019-01-03 13:02
本申请公开了一种请求拦截方法及装置,该方法包括:接收用户请求;对所述用户请求对应的验证项目依次进行验证;当任一验证项目的验证失败时,获得与所述验证项目对应的失败原因,并对所述失败原因进行存储;调用统一处理模块,以使所述统一处理模块获取存储的所述失败原因并生成包含所述失败原因的返回信息。该方法将任一验证项目的失败原因进行存储,并利用统一处理模块获取存储的原因并生成包含失败原因的返回消息,降低了开发设计方式的复杂性,降低了软件开发和维护成本高。

A Request Interception Method and Device

This application discloses a request interception method and device, which includes: receiving user requests; verifying the corresponding authentication items of the user requests in turn; obtaining the corresponding failure reasons of the verification items when the verification of any verification items fails, and storing the failure reasons; calling the unified processing module to obtain the unified processing module. The stored failure reason is fetched and the return information containing the failure reason is generated. This method stores the failure reasons of any validation project, and uses the unified processing module to obtain the storage reasons and generate the return messages containing the failure reasons, which reduces the complexity of the development and design methods and the high cost of software development and maintenance.

【技术实现步骤摘要】
一种请求拦截方法及装置
本申请涉及信息数据处理
,更具体地说,涉及一种请求拦截方法及装置。
技术介绍
当用户在操作界面上操作某个控件时即向服务器发送了相关的请求,如查询请求,修改资料请求等。服务器在接收到用户发送的请求后,会对用户发送的请求进行各验证项目的验证,如用户身份验证、用户权限验证、超时验证等,只有各验证项目都通过时该请求才合法,该请求才会被执行;否则拦截该请求即拒绝执行该请求,并向用户返回某一验证项目对应的失败原因。当前,服务器返回失败原因的方法为:当某个验证项目的验证失败时,服务器会调用与该验证项目对应的处理验证失败情况的处理模块,该处理模块将与该验证项目对应的失败原因添加到返回消息中,从而将包括了失败原因的返回消息返回给用户。针对上述请求拦截方法,在软件开发设计时,需针对每个验证项目单独配置一个处理验证失败情况的处理模块,也即针对每个拦截原因配置各自对应的处理模块,并对每个处理模块分别进行具体的定义以保证每个处理模块能够实现添加各自对应的失败原因到返回消息中,该开发设计方式较为复杂,造成软件开发和维护成本高。
技术实现思路
有鉴于此,本申请提供一种请求拦截方法及装置,以解决现有技术开发设计方式较为复杂,造成软件开发和维护成本高的问题。为了实现上述目的,现提出的方案如下:一种请求拦截方法,所述方法包括:接收用户请求;对所述用户请求对应的验证项目依次进行验证;当任一验证项目的验证失败时,获得与所述验证项目对应的失败原因,并对所述失败原因进行存储;调用统一处理模块,以使所述统一处理模块获取存储的所述失败原因并生成包含所述失败原因的返回信息。一种请求拦截装置,所述装置包括:接收模块,用于接收用户请求;验证模块,用于对所述用户请求所对应的验证项目依次进行验证,并当任一验证项目的验证失败时,获得与所述验证项目对应的失败原因,并对所述失败原因进行存储;统一处理模块,用于获取存储的所述失败原因并生成包含所述失败原因的返回信息。本申请方案中,对于接收到的用户请求,对用户请求所对应的各验证项目依次进行验证,当任一验证项目的验证失败时,获得与所述验证项目对应的失败原因,并对所述失败原因进行存储,进而调用统一处理模块去获取存储的失败原因并生成包含失败原因的返回消息。可见,本申请中在某一验证项目的验证失败时对失败原因进行存储,后续调用一统一处理模块统一去执行获取存储失败原因以及根据失败原因生成返回消息的操作。对应到软件开发设计来说,由于存储了失败原因,所以只需设置定义一个统一处理模块,其能够去获取存储的任一验证项目对应的失败原因,以及能够根据失败原因生成包括失败原因的返回消息;与传统的请求拦截方法相比,该方案无需再针对每个失败原因配置各自对应的处理模块,并对每个处理模块进行具体的定义,该开发设计方式简单,降低了软件开发和维护的成本,同时提高了软件的质量。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例公开的一种请求拦截方法的流程图;图2为本申请另一实施例公开的调用统一处理模块方法的流程图;图3为本申请实施例公开的对验证项目的验证方法的流程图;图4为本申请实施例公开的一种请求拦截装置的组成框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例提供一种请求拦截方法,如图1所示,该方法包括:S100、接收用户请求。具体的,服务器在接收到用户请求后,查看配置文件Struts.xml以确定服务器是否配置了拦截机制,即确定服务器中是否配置了拦截器,当确定配置有拦截器后,按照拦截器栈内定义的拦截器执行顺序,调用拦截器执行验证及拦截处理。通常,服务器中设置有两个拦截器,包括自定义拦截器和系统默认拦截器,本申请实施例提供的请求拦截方法可为针对自定义拦截器设置。S101、对所述用户请求对应的验证项目依次进行验证。其中,按照各验证项目的验证顺序对各验证项目依次进行验证,验证项目包括但不限于:用户权限验证项目、令牌信息Token验证项目,超时验证项目等,当所有验证项目的验证都通过时,放行该用户请求,向用户返回针对用户具体请求内容的执行结果。S102、当任一验证项目的验证失败时,获得与所述验证项目对应的失败原因,并对所述失败原因进行存储。其中,当任一验证项目的验证失败时,则拦截该用户请求,首先要获得该验证项目验证失败的原因,并存储该失败原因。其中,每个验证项目都有其各自对应的失败原因。优选地,对所述失败原因进行存储具体为:将失败原因存储到预设的复用接口中,针对Struts2开源框架来说,该预设的复用接口为与用户请求对应的ActionContext中,即将失败原因存储到与用户请求对应的Actioncontext中。由于ActionContext是基于用户请求而创建的线程中有效,当服务器拒绝访问(或放行执行请求),返回拦截的拒绝原因(或返回请求的执行结果)后,将自动失效。S103、调用统一处理模块,以使所述统一处理模块获取存储的所述失败原因并生成包含所述失败原因的返回信息。其中,为了调用统一处理模块,本申请实施例中优选地,采用chain链跳转的方式跳转到统一处理模块,即调用统一处理模块,具体过程如2所示,包括:S1031、获得统一拦截标识。具体的,以用户请求对应的超时验证项目为例,如代码段一所示。其中,第2行表示获取令牌信息Token的过期时间,第4行表示判断令牌时间是否过期,如果超时则执行拦截。首先获得验证失败的原因,并将失败原因存储到复用接口中,如第5行所示,将Map类成员添加到与用户请求对应的ActionContext中,Map的Key为“DataResult”,Map的Value为"超时连接,请重新登录!",“超时连接,请重新登录!”即为超时验证项目对应的失败原因。可以理解,其他验证项目对应的拦截原因也采用上述方式存储到与用户请求对应的ActionContext里,如此即实现了对同一个接口的复用。第6行表示获得统一拦截标识“APPResult”,不同的拦截原因都使用了该统一拦截标识。S1032、确定与所述统一拦截标识对应的统一处理模块。具体的,在配置文件Struts.xml中配置统一拦截标识为chain链跳转方式,并配置跳转到的处理模块为统一处理模块,如代码段二所示。可以理解,本专利技术的请求拦截方法为服务器执行各程序模块中代码段实现的方法,将代码段一作为是对验证项目进行验证的验证模块的一部分,服务器先是调用了验证模块进行执行,并在某一验证项目的验证失败时,通过获得的统一拦截标识跳转到另一程序模块并执行另一程序模块,在此即调用了统一处理模块执行。其中,第2行表示采用"chain"对统一拦截标识“APPResult”进行Action链跳转配置。第3行表示跳转到的统本文档来自技高网...

【技术保护点】
1.一种请求拦截方法,其特征在于,所述方法包括:接收用户请求;对所述用户请求对应的验证项目依次进行验证;当任一验证项目的验证失败时,获得与所述验证项目对应的失败原因,并对所述失败原因进行存储;调用统一处理模块,以使所述统一处理模块获取存储的所述失败原因并生成包含所述失败原因的返回信息。

【技术特征摘要】
1.一种请求拦截方法,其特征在于,所述方法包括:接收用户请求;对所述用户请求对应的验证项目依次进行验证;当任一验证项目的验证失败时,获得与所述验证项目对应的失败原因,并对所述失败原因进行存储;调用统一处理模块,以使所述统一处理模块获取存储的所述失败原因并生成包含所述失败原因的返回信息。2.如权利要求1所述方法,其特征在于,所述对所述失败原因进行存储包括:将所述失败原因存储到预设的复用接口中。3.如权利要求2所述方法,其特征在于,所述预设的复用接口为与所述请求对应的ActionContext。4.如权利要求1-3任一项所述方法,其特征在于,所述调用统一处理模块获取存储的所述失败原因包括:获得统一拦截标识;确定与所述统一拦截标识对应的统一处理模块;调用所述统一处理模块,以使所述统一处理模块获取存储的所述失败原因并根据所述失败原因和预设的返回消息格式生成返回信息,所述返回信息包括所述失败原因。5.如权利要求1-3任一项所述方法,其特征在于,在所述对所述用户请求对应的验证项目依次进行验证前,所述方法还包括:确定所述用户请求的来源为移动终端;所述调用统一处理模块获取存储的所述失败原因包括:获得移动终端对应的统一拦截标识,确定所述移动终端对应的统一拦截标识对应的统一处理模块,调用所述移动终端对应的统一拦截标识对应的统一处理模块,以使所述移动终端对应的统一拦截标识对应的统一处理模块获取存储的所述失败原因并根据所述失败原因和预设的移动终端对应的返回消息格式生成返回信息。6.如权利要求1-3任一项所述方法,其特征在于,在所述对所述用户请求对应的验证项目依次进行验证前,所述方法还包括:确定所述用户请求的来源为网页;所述调用统一处理模块获取存储的所述失败原因包括:获得网页对应的统一拦截标识,确定所述网页对应的统一拦截标识对应的统一处理模块,调用所述网页对应的统一拦截标识对应的统一处理模块,以使所述网页对应的统一拦截标识对应的统一处理模块获取存储的所述失败原因并根据所述失败原因和预设的网页对应的返回消息格式生成返回消息。7.如权利要求1所述方法,其特征...

【专利技术属性】
技术研发人员:牛姝媛滕恩奇董健行
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1