System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及请求处理领域,特别涉及一种业务请求处理方法、装置、设备及存储介质。
技术介绍
1、微服务(或称微服务架构)是一种云原生架构方法,在单个应用中包含众多松散耦合且可单独部署的小型组件或服务,与大型、紧密耦合的应用程序的整体方法相反。微服务通常拥有自己的技术栈,包括数据库和数据管理模型。目前,客户端在访问微服务时,向网关发出请求,然后在gateway handler mapping(网关处理程序映射)中找到与请求相匹配的路由,将其发送到gateway web handler(网关web处理器),然后再通过指定的过滤器链来将请求发送到目标微服务,最后返回目标微服务的处理结果。其中路由转发通常由nginx(engine x,一个高性能的http(hypertext transfer protocol,超文本传输协议)和反向代理web服务器)进行反向代理,日志记录等。每个服务需要对客户端独立进行认证授权,访问效率较低。因此,如何对访问微服务的客户端进行综合认证授权,避免该客户端通过同一个网关访问不同的微服务时多次进行身份认证是目前亟待解决的问题。
技术实现思路
1、有鉴于此,本专利技术的目的在于提供一种业务请求处理方法、装置、设备及存储介质,能够避免客户端通过同一个网关访问不同的微服务时多次进行身份认证。其具体方案如下:
2、第一方面,本申请公开了一种业务请求处理方法,应用于网关,包括:
3、获取客户端发送的令牌获取请求,将所述令牌获取请求转发至授权服务,
4、获取客户端基于所述令牌发送的业务请求,将所述业务请求与网关内置的断言进行匹配,根据相应的匹配结果确定所述业务请求对应的目标微服务,并判断所述令牌是否满足所述目标微服务的预设访问条件;
5、若所述令牌满足所述目标微服务的预设访问条件,则基于目标服务注册中心将所述业务请求路由至所述目标微服务,以便所述目标微服务获取并处理所述业务请求,并将相应的处理结果返回至所述网关;
6、将所述处理结果转发至所述客户端,并利用所述网关对应的过滤器对所述业务请求对应的处理逻辑进行记录,以完成所述业务请求的处理。
7、可选的,所述获取客户端发送的令牌获取请求之前,还包括:
8、将所述网关以及全部微服务注册至所述目标服务注册中心,通过所述目标服务注册中心对所述网关以及全部微服务进行统一管理,以便基于所述目标服务注册中心确定所述业务请求对应的所述目标微服务的路径地址,并通过所述路径地址对所述业务请求进行路由。
9、可选的,所述将所述令牌获取请求转发至授权服务,以便所述授权服务基于所述令牌获取请求中的客户端身份信息对所述客户端进行身份验证,并在身份验证成功后基于预设令牌桶算法向所述客户端转发相应的令牌,包括:
10、将所述令牌获取请求转发至授权服务;
11、通过所述授权服务基于所述令牌获取请求中的所述客户端的用户名和密码对所述客户端进行身份验证,若所述客户端身份验证成功,则生成相应的令牌,将所述令牌以及所述令牌对应的时效信息保存至redis数据库,并基于所述预设令牌桶算法通过所述网关将所述令牌转发至所述客户端。
12、可选的,所述判断所述令牌是否满足所述目标微服务的预设访问条件,包括:
13、基于所述redis数据库中所述令牌对应的时效信息判断所述令牌的签名和使用期限是否有效;
14、若所述令牌的签名和使用期限有效,则判断所述令牌的访问权限与所述目标微服务对应的访问权限是否有交集。
15、可选的,所述判断所述令牌的访问权限与所述目标微服务对应的访问权限是否有交集之后,还包括:
16、若所述令牌的访问权限与所述目标微服务对应的访问权限有交集,则判定所述令牌满足所述目标微服务的预设访问条件;
17、若所述令牌的访问权限与所述目标微服务对应的访问权限没有交集,则判定所述令牌不满足所述目标微服务的预设访问条件,并发送没有权限的提示信息。
18、可选的,所述业务请求处理方法,还包括:
19、若所述网关自身存在异常或在业务请求处理过程中存在异常,则通过所述网关的errorwebexceptionhandler类继承并重写目标方法,并通过所述目标方法对所述异常进行处理以及对返回至所述客户端的状态码和数据结构进行自定义。
20、可选的,所述利用所述网关对应的过滤器对所述业务请求对应的处理逻辑进行记录,包括:
21、利用所述网关对应的第一类型过滤器对所述业务请求的请求参数、请求头和统一资源标识符进行记录;
22、利用所述网关对应的第二类型过滤器对所述业务请求的请求状态、响应时间和所述处理结果进行记录。
23、第二方面,本申请公开了一种业务请求处理装置,应用于网关,包括:
24、令牌转发模块,用于获取客户端发送的令牌获取请求,将所述令牌获取请求转发至授权服务,以便所述授权服务基于所述令牌获取请求中的客户端身份信息对所述客户端进行身份验证,并在身份验证成功后基于预设令牌桶算法向所述客户端转发相应的令牌;
25、条件判断模块,用于获取客户端基于所述令牌发送的业务请求,将所述业务请求与网关内置的断言进行匹配,根据相应的匹配结果确定所述业务请求对应的目标微服务,并判断所述令牌是否满足所述目标微服务的预设访问条件;
26、处理结果获取模块,用于若所述令牌满足所述目标微服务的预设访问条件,则基于目标服务注册中心将所述业务请求路由至所述目标微服务,以便所述目标微服务获取并处理所述业务请求,并将相应的处理结果返回至所述网关;
27、处理逻辑记录模块,用于将所述处理结果转发至所述客户端,并利用所述网关对应的过滤器对所述业务请求对应的处理逻辑进行记录,以完成所述业务请求的处理。
28、第三方面,本申请公开了一种电子设备,包括:
29、存储器,用于保存计算机程序;
30、处理器,用于执行所述计算机程序,以实现前述的业务请求处理方法。
31、第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述的业务请求处理方法。
32、本申请中在处理客户的业务请求时,网关首先获取客户端发送的令牌获取请求,将令牌获取请求转发至授权服务,以便授权服务基于令牌获取请求中的客户端身份信息对客户端进行身份验证,并在身份验证成功后基于预设令牌桶算法向客户端转发相应的令牌;然后获取客户端基于令牌发送的业务请求,将业务请求与网关内置的断言进行匹配,根据相应的匹配结果确定业务请求对应的目标微服务,并判断令牌是否满足目标微服务的预设访问条件;若令牌满足目标微服务的预设访问条件,则利用目标微服务以及目标服务本文档来自技高网...
【技术保护点】
1.一种业务请求处理方法,其特征在于,应用于网关,包括:
2.根据权利要求1所述的业务请求处理方法,其特征在于,所述获取客户端发送的令牌获取请求之前,还包括:
3.根据权利要求1所述的业务请求处理方法,其特征在于,所述将所述令牌获取请求转发至授权服务,以便所述授权服务基于所述令牌获取请求中的客户端身份信息对所述客户端进行身份验证,并在身份验证成功后基于预设令牌桶算法向所述客户端转发相应的令牌,包括:
4.根据权利要求3所述的业务请求处理方法,其特征在于,所述判断所述令牌是否满足所述目标微服务的预设访问条件,包括:
5.根据权利要求4所述的业务请求处理方法,其特征在于,所述判断所述令牌的访问权限与所述目标微服务对应的访问权限是否有交集之后,还包括:
6.根据权利要求1所述的业务请求处理方法,其特征在于,还包括:
7.根据权利要求1至6任一项所述的业务请求处理方法,其特征在于,所述利用所述网关对应的过滤器对所述业务请求对应的处理逻辑进行记录,包括:
8.一种业务请求处理装置,其特征在于,应用于网关,包
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的业务请求处理方法。
...【技术特征摘要】
1.一种业务请求处理方法,其特征在于,应用于网关,包括:
2.根据权利要求1所述的业务请求处理方法,其特征在于,所述获取客户端发送的令牌获取请求之前,还包括:
3.根据权利要求1所述的业务请求处理方法,其特征在于,所述将所述令牌获取请求转发至授权服务,以便所述授权服务基于所述令牌获取请求中的客户端身份信息对所述客户端进行身份验证,并在身份验证成功后基于预设令牌桶算法向所述客户端转发相应的令牌,包括:
4.根据权利要求3所述的业务请求处理方法,其特征在于,所述判断所述令牌是否满足所述目标微服务的预设访问条件,包括:
5.根据权利要求4所述的业务请求处理...
【专利技术属性】
技术研发人员:罗鹏飞,周华雄,
申请(专利权)人:杭州安恒信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。