1.本技术涉及数据处理技术领域,尤其涉及一种双责任链微服务网关系统及其处理方法。
背景技术:
2.在传统的软件系统开发中,很多非业务都需要和业务代码进行耦合,多个服务也会有重复性的代码,但可扩展性不高。传统系统鉴权操作需要一个公共的登录鉴权逻辑方法,然后在业务方法之前,先判断登录鉴权。这样每个方法都会写一行或者几行重复的鉴权代码,如果有多个服务,那么每个服务都需要写一个这种公共方法,重复代码会非常多,并且如果鉴权逻辑修改,那么每个服务都需要进行修改,为软件开发效率及可维护性等带来诸多问题。
3.为此,需要提出一个能够解决对于公共功能会重复的耦合到具体业务代码之中,导致重复代码过多,维护困难,扩展性不高的问题的方案。
技术实现要素:
4.有鉴于此,本技术的目的在于提出一种双责任链微服务网关系统及其处理方法。
5.基于上述目的,本技术提供了一种双责任链微服务网关系统,其特征在于,包括网关接收端,与所述网关接收端连接的双责任链网关和与所述双责任链网关连接的网关输出端,包括:
6.所述网关接收端,用于接收前端应用发出的业务请求信息或业务系统发出的业务反馈信息,发送所述业务请求信息或所述业务反馈信息至所述双责任链网关;
7.所述双责任链网关,用于接收所述业务请求信息或所述业务反馈信息,识别出所述业务请求信息或所述业务反馈信息中的公共非业务信息进行处理,发送得到的业务请求处理结果或业务反馈处理结果至所述网关输出端;
8.所述网关输出端,用于将接收到的所述业务请求处理结果,发送至所述业务系统,或将接收到的所述业务反馈处理结果,发送至所述前端应用。
9.在一些实施方式中,所述双责任链网关在识别出所述业务请求信息或所述业务反馈信息中的公共非业务信息进行处理时,采用过滤责任链进行处理,所述过滤责任链包括:
10.校验过滤模块、与所述校验过滤模块连接的解密过滤模块和与所述解密过滤模块连接的结果过滤模块;其中,
11.所述校验过滤模块,用于接收所述网关接收端发出的所述业务请求信息,识别所述业务请求信息的公共非业务信息,识别出校验信息时,处理所述校验信息得到校验处理结果,把所述校验处理结果添加进所述业务请求信息中得到第一业务请求信息,发送所述第一业务请求信息至所述解密过滤模块,或接收所述网关接收端发出的所述业务反馈信息,并发送至所述解密过滤模块;
12.所述解密过滤模块,用于接收所述第一业务请求信息,识别第一业务请求信息的
公共非业务信息,识别出需要解密的参数时,调用预设的解密算法进行解密,并把解密结果添加进所述第一业务请求信息,得到第二业务请求信息,发送所述第二业务请求信息至所述风险过滤模块,或接收所述校验过滤模块发出的所述业务反馈信息,并发送至所述结果过滤模块;
13.所述结果过滤模块,用于接收所述第二业务请求信息,把所述第二业务请求信息作为所述业务请求处理结果发送至所述网关输出端,或接收所述解密过滤模块发出的所述业务反馈信息,识别所述业务反馈信息的公共非业务信息,识别出需要加密的参数时,调用预设的加密算法进行加密,把加密结果添加进所述业务反馈信息,得到所述业务反馈处理结果并发送至所述网关输出端。
14.在一些实施方式中,所述过滤责任链,还包括:
15.风险过滤模块,连接在所述解密过滤模块和所述结果过滤模块之间;
16.用于接收所述第二业务请求信息,识别所述第二业务请求信息的公共非业务信息,识别出有害信息时,调用预设的处理策略进行无害化处理,把无害化处理结果添加进所述第二业务请求信息得到第三业务请求信息,发送所述第三业务请求信息至所述结果过滤模块,或接收所述解密过滤模块发送的业务反馈信息,发送所述业务反馈信息至所述结果过滤模块。
17.在一些实施方式中,所述过滤责任链,进一步包括:
18.错误过滤模块,与所述校验过滤模块、所述解密过滤模块、所述风险过滤模块和所述结果过滤模块分别连接;
19.用于接收所述校验过滤模块、所述解密过滤模块、所述风险过滤模块、所述结果过滤模块中的至少之一在执行过程中出现异常形成的异常信息;对所述异常信息进行封装,将封装结果发送至所述网关输出端,并由所述网关输出端发送至所述前端应用。
20.在一些实施方式中,所述校验过滤模块在处理所述校验信息得到校验处理结果,把所述校验处理结果添加进所述业务请求信息中得到第一业务请求信息时,采用校验责任链进行处理,所述校验责任链包括:
21.请求方法校验模块、连接在所述请求方法校验模块和所述解密过滤模块之间的登录鉴权校验模块;其中,
22.所述请求方法校验模块,用于接收所述网关接收端发送的所述业务请求信息,识别所述业务请求信息的公共非业务信息,从所述业务请求信息的公共非业务信息中识别所述校验信息,并识别所述校验信息,识别出请求方法时,判断所述请求方法是否正确,把判断结果添加进所述校验信息得到第一校验信息,发送所述第一校验信息至所述登录鉴权校验模块;
23.所述登录鉴权校验模块,用于接收所述第一校验信息,识别所述第一校验信息,识别出登录鉴权信息时,判断所述登录鉴权信息是否符合预设要求,把判断结果添加进所述第一校验信息得到第二校验信息,把所述第二校验信息作为所述校验处理结果添加进所述业务请求信息得到所述第一业务请求信息,发送所述第一业务请求信息至所述解密过滤模块。
24.在一些实施方式中,所述校验责任链,还包括:
25.连接在所述登陆鉴权校验模块和所述解密过滤模块之间的请求超时校验模块;
26.用于接收所述第二校验信息,识别所述第二校验信息,识别出请求时间时,判断是否超时,把判断结果添加进所述第二校验信息得到第三校验信息,把所述第三校验信息作为所述校验处理结果添加进所述业务请求信息得到所述第一业务请求信息,发送所述第一业务请求信息至所述解密过滤模块。
27.在一些实施方式中,所述校验责任链,还包括:
28.连接在所述请求超时校验模块和所述解密过滤模块之间的请求越权校验模块;
29.用于接收所述第三校验信息,识别所述第三校验信息,识别出请求信息时,判断是否越权,把判断结果添加进所述第三校验信息得到第四校验信息,把所述第四校验信息作为所述校验处理结果添加进所述业务请求信息得到所述第一业务请求信息,发送所述第一业务请求信息至所述解密过滤模块。
30.在一些实施方式中,所述校验责任链,还包括:
31.连接在所述请求越权校验模块和所述解密过滤模块的黑名单校验模块;
32.用于接收所述第四校验信息,识别所述第四校验信息,当识别出身份信息时,判断所述身份信息是否在预设的黑名单中,把判断结果添加进所述第四校验信息得到第五校验信息,把所述第五校验信息作为所述校验处理结果添加进所述业务请求信息得到所述第一业务请求信息,发送所述第一业务请求信息至所述解密过滤模块。
33.在一些实施方式中,所述双责任链网关将所述业务请求处理结果或所述业务反馈处理结果发送至预开发的审计日志进行记录。
34.本技术还提供了一种双责任链微服务网关系统处理方法,包括:
35.接收前端应用发出的业务请求信息或业务系统发出的业务反馈信息;
36.响应于识别出所述业务请求信息或所述业务反馈信息中的公共非业务信息,处理所述业务请求信息或所述业务反馈信息中的公共非业务信息得到业务请求处理结果或业务反馈处理结果;
37.发送所述业务请求处理结果至所述业务系统,或发送所述业务反馈处理结果至所述前端应用。
38.从上面所述可以看出,本技术提供的双责任链微服务网关系统及其处理方法,通过提供了一个单独的双责任链网关来处理公共非业务操作,双责任链网关包括解决公共非业务操作的各个模块,用来分别执行对应的公共非业务操作,使业务系统中的业务微服务不再需要执行这些公共非业务操作,仅需执行业务操作,实现了公共非业务操作与业务操作的解耦。同时,开发人员在进行业务微服务的开发时,不需要考虑采用业务微服务执行公共非业务操作,就不用为每个业务微服务重复开发实现公共非业务操作的功能,降低了业务微服务代码重复率,也使开发人员在不用耗费精力非业务代码,提高了开发人员的工作效率。
附图说明
39.为了更清楚地说明本技术或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1为本技术实施例提供的双责任链微服务网关系统的示意图;
41.图2为本技术实施例提供的双责任链网关的示意图;
42.图3为本技术实施例提供的双责任链网关进行参数加解密的的示意图;
43.图4为本技术实施例提供的双责任链网关处理风险信息的示意图;
44.图5为本技术实施例提供的双责任链微服务网关系统的处理方法的示意图;
45.图6为本技术实施例提供的双责任链微服务网关系统中双责任链网关的校验责任链处理业务请求信息或业务反馈信息的示意图;
46.图7为本技术实施例提供的双责任链微服务网关系统中双责任链网关的校验责任链处理校验信息的示意图。
具体实施方式
47.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
48.需要说明的是,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
49.相关技术中,开发业务系统时很多非业务操作都需要和业务代码进行耦合,导致多个服务内存在重复性的代码,可扩展性不高。如鉴权操作,传统系统鉴权操作需要一个公共的登录鉴权逻辑方法,然后在业务方法之前,先判断登录鉴权。这样每个方法都会写一行或者几行重复的鉴权代码。如果有多个服务时,那么每个服务都需要写一个这种公共方法,重复代码会非常多,为软件开发效率及可维护性等带来诸多问题。这时如果鉴权逻辑修改,那么每个服务都需要修改,业务耦合性强。即使采用切面编程,也只能减少系统内部的代码重复问题,没办法解决各个系统代码重复问题。
50.为解决上述问题,本技术提供了一种双责任链微服务网关系统,对于从前端应用发送的业务请求信息或业务系统发出的业务反馈信息,先由所述双责任链微服务网关系统处理其中的公共非业务操作,再把处理完公共非业务操作信息的业务请求信息发送至业务系统中对应的业务微服务进行处理或把处理完公共非业务操作信息的业务反馈信息发送至前端应用。减少业务系统中的各个业务微服务内公共非业务操作的代码重复,降低公共非业务操作异常对业务的影响。
51.参照图1,本技术提供的双责任链微服务网关系统,包括网关接收端101,与所述网关接收端101连接的双责任链网关102和与所述双责任链网关102连接的网关输出端103,其中:
52.网关接收端101,用于接收前端应用发出的业务请求信息或业务系统发出的业务反馈信息,并发送业务请求信息或业务反馈信息至双责任链网关。
53.网关接收端101是预先配置好的用来接收信息的数据接口。前端应用指把接收到
的业务请求信息并显示业务系统处理结果的硬件设备或软件,负责把接收到的业务请求信息如查询请求、操作请求等信息发送至网关接收端101。
54.业务系统内包含有处理不同业务请求的多种业务微服务,负责把业务反馈信息如查询结果、操作结果等信息发送至网关接收端101。
55.双责任链网关102,用于接收业务请求信息或业务反馈信息,识别出业务请求信息或业务反馈信息中的公共非业务信息进行处理,并发送得到的业务请求处理结果或业务反馈处理结果至网关输出端。
56.双责任链网关102是把原来分散在各个业务微服务中的公共非操作功能如登录鉴权、参数加解密、异常识别等提取出来,整合为实现不同公共非业务操作功能的模块,再把这些模块按照一定的顺序连接为责任链的形式得到的单独的网关服务。
57.双责任链网关102接收业务请求信息或业务反馈信息后,处理其中的公共非业务操作信息,发送得到的业务请求信息处理结果至业务系统或业务反馈想信息处理结果至前端应用。以双责任链网关102从网关接收端101接收到查询请求为例,前端应用会采用预设的加密算法对查询请求中的参数进行加密,由于查询请求可能不只对应业务系统中的单个业务微服务,在未采用双责任链网关时,每个业务微服务在接收到查询请求时都需要调用解密算法来解密加密参数,然后获取自身需要的参数并进行处理以得到查询结果。采用双责任链网关后,由双责任链网关中负责解密功能的模块调用对应的解密算法进行对加密后的相关参数进行解密,然后把解密得到的参数通过网关输出端发送至业务系统,由业务系统把接收到的解密后的相关参数分发至对应的业务微服务,使各项业务微服务都去除了解密并获取自身需要的参数这一步骤。
58.网关输出端103,用于将接收到的业务请求处理结果发送至业务系统,或将接收到的业务反馈处理结果发送至前端应用。
59.其中,网关输出端103是预先配置好的用于发送信息的数据接口,发送双责任链网关处理如查询请求、操作请求等业务请求信息得到的业务请求处理结果到业务系统,再由业务系统选择对应的业务微服务进行处理。
60.或发送双责任链网关处理如查询结果、操作结果等业务反馈信息得到的业务反馈处理结果至前端应用,由前端应用显示出来。
61.本技术提供的双责任链微服务网关系统,把业务系统中各个业务微服务的执行公共非业务操作的功能如校验功能、解密功能、加密功能等功能整合进单独的网关服务中,在前端应用向业务系统发送业务请求信息或业务系统向前端应用发送业务反馈信息时,先发送至双责任链微服务网关系统由其中的双责任链网关102处理其中包括登录鉴权、参数加解密等公共非业务操作,再发送业务请求处理结果或业务反馈处理结果至对应的业务系统或前端应用。使业务系统中的各个业务微服务只需执行自身的业务功能,实现了公共非业务操作与业务操作的解耦。同样使开发人员在开发业务微服务时也就不需要考虑针对公共非业务操作进行相应功能的开发,可以专注于业务代码的开发,进而提升了开发人员的工作效率。
62.可选的,本技术中的双责任链网关102采用过滤责任链处理接收到的业务请求信息或业务反馈信息中的公共非业务操作信息,过滤责任链为双责任链网关102的主责任链。当双责任链网关102接收到业务请求信息或业务反馈信息时,由过滤责任链上的各个模块
按照顺序分别处理其中的公共非业务操作信息,并把处理结果沿过滤责任链传递至网关输出端。参照图2,所述过滤责任链包括校验过滤模块201与校验过滤模块201连接的解密过滤模块202和与解密过滤模块202结果过滤模块204。
63.校验过滤模块201,用于接收网关接收端发出的业务请求信息,识别业务请求信息的公共非业务信息,识别出校验信息时,处理校验信息得到校验处理结果,把校验处理结果添加进业务请求信息中得到第一业务请求信息,发送第一业务请求信息至解密过滤模块202,或接收网关接收端发出的业务反馈信息,并发送至解密过滤模块202。
64.其中,校验过滤模块201是通过把原本各个业务微服务在接收到业务请求信息后对业务请求信息进行校验的功能整合在一起得到的,可以实现如如请求方法校验、登录鉴权校验等多种校验功能。校验过滤模块201根据业务请求信息对应的校验类型来执行对应的校验操作,对于通过校验的业务请求信息,传送至过滤责任链的下一个模块进行对应的处理;对于未通过校验的业务请求信息则反馈校验未通过的信息到前端应用。以登录鉴权校验为例,校验过滤模块201需要根据预存的用户名-密码组合判断接收到的业务请求信息中的用户名和密码是否匹配,两者匹配的话,把通过登录鉴权校验的结果添加进业务请求信息得到第一业务请求信息,继续传到下一个模块进行处理;否则,把两者不匹配的结果作为异常通过网关输出端103反馈至前端应用。
65.解密过滤模块202,用于接收第一业务请求信息,识别第一业务请求信息的公共非业务信息,识别出需要解密的参数时,调用预设的解密算法进行解密,并把解密结果添加进第一业务请求信息,得到第二业务请求信息,发送第二业务请求信息至结果过滤模块204,或接收校验过滤模块201发出的业务反馈信息,并发送至结果过滤模块204。
66.其中,前端应用为了保证信息传输过程的安全,会调用加密算法对接收到的操作参数进行加密,当这些加密过的操作参数随着业务请求信息传到业务系统的业务微服务中时,业务微服务还需调用对应的解密算法解密以获得操作参数,再根据操作参数执行对应的操作。这种情况下,开发每个业务微服务时都需要考虑到解密功能的设置,增大了开发人员的工作量。为解决这一问题,把各个业务微服务中的解密功能整合开发得到解密过滤模块202,由这一模块调用预存的解密算法对接收到的第一业务请求信息中的加密参数进行解密,并发送带有解密过的参数的第二业务请求信息到过滤责任链的下一个模块。
67.结果过滤模块204,用于接收第二业务请求信息,把第二业务请求信息作为业务请求处理结果发送至网关输出端,或接收解密过滤模块202发出的业务反馈信息,识别业务反馈信息的公共非业务信息,识别出需要加密的参数时,调用预设的加密算法进行加密,把加密结果添加进业务反馈信息,得到业务反馈处理结果并发送至网关输出端。
68.其中,同样为了保证信息传输过程的安全,业务微服务在执行操作参数对应的操作获得处理结果后,还会采用加密算法对处理结果进行加密后再发送至前端应用采用对应的解密算法进行解密。在这种情况下,在开发业务微服务时也需要考虑到如何实现加密功能,从而增大了开发人员的工作量。为解决这一问题,对原本需要各个业务微服务单独实现的加密功能进行整合开发获得结果过滤模块204,由这一模块调用预存的加密算法对沿过滤责任链传递到结果过滤模块204的业务反馈信息中的处理结果进行加密,通过网关输出端发送至前端应用,前端应用再调用对应的解密算法进行解密获得处理结果。
69.可选的,参照图2,在解密过滤模块202和结果过滤模块204之间,还可以连接风险
过滤模块203,用于接收第二业务请求信息,识别第二业务请求信息的公共非业务信息,识别出有害信息时,调用预设的处理策略进行无害化处理,把无害化处理结果添加进第二业务请求信息得到第三业务请求信息,发送第三业务请求信息至结果过滤模块,或接收解密过滤模块202发送的业务反馈信息,发送业务反馈信息至结果过滤模块204。
70.其中,由于有些业务微服务的安全级别较高,为了防止业务这类业务微服务被攻击造成业务系统数据的损坏和丢失,在开发这类业务微服务时需要开发相应的风险过滤功能,用来防范攻击,保护数据安全,就增大了开发人员的工作量。为解决这一问题,把分散在业务系统中各个业务微服务中的风险过滤功能整合在一起得到风险过滤模块203,使风险过滤模块203可以有效防范如跨站请求攻击、请求伪造攻击、中间人攻击等安全风险;并且基于敏感词钝化机制实现防范结构化查询语言(structured query language,sql)注入攻击、页面挂木马等安全风险。并且风险过滤模块203不仅仅防范了对原有的需要保护的业务微服务的保护,还可以对之前未开发风险过滤功能的业务微服务提供保护,扩大了对业务微服务的保护范围。
71.可选的,参照图2,在过滤责任链中,还包括分别与校验过滤模块201、解密过滤模块202、风险过滤模块203和结果过滤模块204连接的异常过滤模块205,用于接收校验过滤模块201、解密过滤模块202、风险过滤模块203、结果过滤模块204中的至少之一在执行过程中出现异常形成的异常信息;对异常信息进行封装,将封装结果发送至网关输出端,并由网关输出端发送至前端应用。
72.其中,以异常过滤模块205接收过滤责任链上其余模块执行过程中出现并发送至异常过滤模块205的异常信息,包括cisbrokentokenexception、cisbusinessexception、cismissrandomkeyexception、cismisstokenexception等异常信息,将这些异常信息封装为token损坏、业务异常、随机密钥丢失、token丢失等,然后通过配置好的与前端应用实现通信的数据接口发送至前端应用,由前端应用显示出来,避免了由各个模块单独向前端应用报告执行过程中出现异常,双责任链网关中的各个模块也不需要单独配置用来实现与前端应用进行通信的数据接口。
73.可选的,校验过滤模块201的具体实现链路为校验责任链,即为过滤责任链的子责任链,与所述过滤责任链一同组成双责任链网关。参照图2,校验责任链包括:请求方法校验模块206、与请求方法校验模块206和解密过滤模块202分别连接的登录鉴权校验模块207。
74.请求方法校验模块206,用于接收网关接收端发送的业务请求信息,识别业务请求信息的公共非业务信息,从业务请求信息的公共非业务信息中识别校验信息,并识别校验信息,识别出请求方法时,判断请求方法是否正确,把判断结果添加进校验信息得到第一校验信息,发送第一校验信息至登录鉴权校验模块207。
75.其中,请求方法校验模块206识别出校验信息中的请求方法并判断请求方法是否正确时,包括:首先由前端应用在代表请求方法的请求参数后添加标签数据,其中标签数据是前端应用根据请求参数采用加密算法计算出来的;请求方法校验模块识别出带有标签数据的请求参数时,识别出其中的请求参数并采用同样的加密算法进行计算,比较计算出的值与识别出的标签数据,如果两者相同的话,通过请求方法校验。把原本由各个需要进行请求方法校验的业务微服务自己进行校验的请求方法统一由请求方法校验模块207来处理,从而在开发需要校验请求方法的业务微服务时,不必重复开发请求方法校验功能。
76.登录鉴权校验模块207,用于接收第一校验信息,识别第一校验信息,识别出登录鉴权信息时,判断登录鉴权信息是否符合预设要求,把判断结果添加进第一校验信息得到第二校验信息,把第二校验信息作为校验处理结果添加进业务请求信息得到第一业务请求信息,发送第一业务请求信息至解密过滤模块202。
77.其中,登录鉴权校验模块207判断登录鉴权信息是否符合预设要求时,包括根据数据库内预存的用户名-密码组合判断校验信息中的用户名与密码是否匹配;根据预存的身份验证信息如指纹来判断接收到的身份验证信息与预存的是否匹配等操作,把原本各个需要登录的业务微服务自己实现的登录鉴权功能整合进登录鉴权校验模块207中,使这些需要登录鉴权的业务微服务只需接收通过登录鉴权的业务请求信息,并执行业务操作,提高了业务微服务的工作效率。
78.可选的,参照图2,在登录鉴权校验模块207和解密过滤模块202之间,还可以连接请求超时校验模块208,用于接收第二校验信息,识别第二校验信息,识别出请求时间时,判断是否超时,把判断结果添加进第二校验信息得到第三校验信息,把第三校验信息作为校验处理结果添加进业务请求信息得到第一业务请求信息,发送第一业务请求信息至解密过滤模块202。
79.其中,请求超时校验模块207判断请求时间是否超时,例如业务系统的某个业务微服务接收到通过了双责任链网关处理的登录请求,成功登录这一业务微服务后,在后续从前端应用通过双责任链网关发送操作请求到这一业务微服务时,由请求超时校验模块207识别出这一操作请求距登录请求的时间间隔,并判断时间间隔是否超出预设的时间阈值。若超出时间阈值的话,即为请求超时,需要重新登录这一业务微服务并及时再次发送操作请求。请求超时校验模块207把原本由各个业务微服务实现的验证自身接收到的操作请求是否超时的功能整合到一起,使开发人员在开发业务微服务时不必特地开发请求超时校验功能,节省了工作量,进而提高了开发效率。
80.可选的,参照图2,在请求超时校验模块208和解密过滤模块202之间,还可以连接请求越权校验模块209,用于接收第三校验信息,识别第三校验信息,识别出请求信息时,判断是否越权,把判断结果添加进第三校验信息得到第四校验信息,把第四校验信息作为校验处理结果添加进业务请求信息得到第一业务请求信息,发送第一业务请求信息至解密过滤模块202。
81.其中,请求越权校验模块209,判断请求信息是否越权,例如业务系统中的某个业务微服务为登录本业务微服务的操作人员划分出高、中、低三级权限,每级权限可以进行的操作有不同的限制,如高权限人员可以执行业务微服务的发表评论、查询内容、浏览内容的功能,中权限人员可以执行查询内容、浏览内容的功能,而低权限人员只能执行浏览内容的功能,并把权限和对应的可执行功能记录在请求越权校验模块207中。当低权限人员想要向这一业务微服务中发送实现查询内容功能的操作指令时,由请求校验模块209根据预存的权限等级和对应可执行的功能判断这一操作指令越权。通过请求校验模块209还可以实现统一业务系统中各个业务微服务的权限等级和对应的可执行操作功能,避免为每个业务微服务单独设置一套权限等级和对应的可执行操作功能,降低了业务系统的复杂程度,也减少了开发人员的工作量。
82.可选的,参照图2,在请求越权校验模块209和解密过滤模块202之间,还可以连接
黑名单校验模块210,用于接收第四校验信息,识别第四校验信息,当识别出身份信息时,判断身份信息是否在预设的黑名单中,把判断结果添加进第四校验信息得到第五校验信息,把第五校验信息作为校验处理结果添加进业务请求信息得到第一业务请求信息,发送第一业务请求信息至解密过滤模块202。
83.其中,黑名单校验模块210识别出身份信息,并与预置在黑名单校验模块210中的黑名单进行匹配,匹配成功的话,就判断身份信息对应的操作人员处在黑名单中,业务系统不会执行该人员发出的操作指令。把原本由各个业务微服务单独实现的黑名单校验功能整合到一起,整合开发得到黑名单校验模块,使得开发业务微服务时,不必考虑设置黑名单校验功能,使开发人员专注于业务代码的开发。
84.在上述校验责任链的基础上还可以根据想要实现的校验功能继续拓展新的校验模块,具体实施时:例如需要再校验责任链上添加敏感词校验模块,只需把不同业务微服务分别实现的敏感词校验功能整合开发得到敏感词校验模块,把敏感词校验模块连接在所述黑名单校验模块210和解密过滤模块202之间,用来执行相应的敏感词校验功能,就完成了校验责任链的拓展。
85.可选的,本技术提供的双责任链网关还会把所述业务请求处理结果或所述业务反馈处理结果发送至预开发的审计日志进行记录。以实现记录双责任链微服务网关系统的工作状况,并进行记录,方便后续对双责任链微服务网关系统进行维护时查询相关资料。除了这种方式外,还可以由所述双责任链网关中过滤责任链和校验责任链这种每个模块把本模块的处理结果通过预先配置好的的事件记录接口发送至预开发的审计日志中。所述审计日志记录的内容包括:请求参数、请求路径、请求类型、请求时间、操作类型、事件类型,异常信息等信息。相比于各个业务微服务自身进行审计日志的记录然后再汇总,由双责任链网关统一接收审计日志信息并记录,能够方便快捷的进行审计日志的记录,使业务系统的工作效率提升。
86.作为一个可选的实施例,参照图3,本技术提供的双责任链微服务网关系统在实现参数的加解密时,包括:
87.步骤s301,前端应用发送加密参数至网关。
88.其中,前端应用调用内置的加密算法对接收到的操作参数进行加密,得到加密参数,通过网关接收端发送所述加密参数至双责任链网关。
89.步骤s302,网关解密加密参数,并发送至业务系统。
90.本步骤中,由于只需执行对参数的加解密,加密参数不用由校验过滤模块处理,沿过滤责任链到达解密过滤模块,由解密过滤模块调用加密参数对应的解密算法解密所述加密参数得到操作参数,把所述操作参数沿过滤责任链发送至网关输出端,由网关输出端发送所述操作参数至业务系统。
91.步骤s303,业务系统处理参数,发送处理结果至网关。
92.本步骤中,业务系统根据操作参数执行操作,生成对应的处理结果,并把处理结果通过网关接收端发送至双责任链网关。
93.步骤s304,网关加密处理结果,发送加密结果至前端应用。
94.本步骤中,处理结果沿过滤责任链到达结果过滤模块,由结果过滤模块调用预设的加密算法进行加密得到加密结果,并通过网关输出端发送加密结果到前端应用。
95.步骤s305,前端应用解密加密结果,得到处理结果。
96.本步骤中,前端应用调用预设的解密算法,解密接收到的加密结果获得业务系统的处理结果,并把处理结果显示在前端应用的图形界面上。
97.上述步骤中,对操作参数的解密和处理结果的加密是由解密过滤模块和结果过滤模块分别实现的,并非由业务中需要处理操作参数的业务微服务执行,使得开发业务微服务时省去了对解密功能和加密功能的开发,减少了开发人员的工作量。
98.作为一个可选的实施例,参照图4,本技术提供的双责任链微服务网关系统中的风险过滤模块在防范sql注入时,包括:
99.步骤s401,攻击者通过前端应用输入攻击代码,发送至网关。
100.本步骤中,攻击者在前端应用输入攻击代码'or 1=1,并把攻击代码通过网关接收端发送至所述双责任链网关。
101.步骤s402,网关识别出攻击代码并进行无害化处理,得到无害化处理结果。
102.本步骤中,双责任链网关接收攻击代码并沿过滤责任链传递攻击代码,传递到过滤责任链的风险过滤模块时,风险过滤模块检测到攻击代码,并基于正则表达式检测敏感字符把攻击代码中的半角'转换为全角
‘
,完成无害化处理,达到把攻击代码钝化为不可执行的指令的目的。
103.步骤s403,网关把处理结果发送至业务系统。
104.本步骤中,双责任链网关继续沿过滤责任链传递钝化后的攻击代码,并把钝化后的攻击代码通过网关输出端发送至业务系统,由于钝化后的攻击代码并不能执行sql注入,就不会对业务系统造成影响。
105.作为一个可选的实施例,参照图5,本技术还提供了一种双责任链微服务网关系统的处理方法,包括:
106.步骤s501,接收前端应用发出的业务请求信息或业务系统发出的业务反馈信息。
107.本步骤中,前端应用发送业务请求信息或业务系统发送业务反馈信息到双责任链微服务网关系统的网关接收端,由网关接收端接收这些信息。
108.步骤s502,响应于识别出所述业务请求信息或所述业务反馈信息中的公共非业务信息,处理所述业务请求信息或所述业务反馈信息中的公共非业务信息得到业务请求处理结果或业务反馈处理结果。
109.本步骤中,双责任链微服务网关系统的网关接收端把接收到的业务请求信息或业务反馈信息发送到双责任链网关进行处理,并由双责任链网关发送得到的业务请求处理结果或业务反馈处理结果到网关输出端。
110.其中,双责任链网关采用过滤责任链处理业务请求信息或业务反馈信息,过滤责任链即为双责任链网关的主责任链,包括:校验过滤模块、与校验过滤模块连接的解密过滤模块和与解密过滤模块连接的结果过滤模块。参照图6,双责任链网关在处理业务请求信息或业务反馈信息时,包括:
111.步骤s601,接收到网关接收端发出的业务请求信息或业务反馈信息,由校验过滤模块识别接收到的业务请求信息,从中识别出校验信息时,处理校验信息得到校验处理结果,把校验处理结果添加进业务请求信息得到第一业务请求信息,并发送至解密过滤模块。或接收业务反馈信息并发送至解密过滤模块。
112.其中,校验过滤模块在处理校验信息时,采用了校验责任链,校验责任链是校验过滤模块的具体实现链路,也是过滤责任链的子责任链,包括请求方法校验模块和连接在请求方法校验模块和解密过滤模块之间的登录鉴权校验模块。参照图7,校验责任链在处理校验信息时,包括:
113.步骤s701,接收到网关接收端发出的业务请求信息,由请求方法校验模块识别业务请求信息中的校验信息中的请求方法并进行校验判断,把判断结果添加进校验信息得到第一校验信息,并发送至登录鉴权校验模块。
114.步骤s702,接收到请求方法校验模块发出的第一校验信息,由登录鉴权模块识别第一校验信息中的登录鉴权信息并进行判断,把判断结果添加进第一校验信息得到第二校验信息,再把第二校验信息添加进业务请求信息得到第一业务请求信息,然后发送到解密过滤模块进行处理。
115.步骤s703,接收到登录鉴权校验模块发出的第二校验信息,由请求超时校验模块识别其中的请求时间并判断是否超时,把判断结果添加进第二校验信息得到第三校验信息,并把第三校验信息添加进业务请求信息得到第一业务请求信息后,发送到解密过滤模块进行处理。
116.本步骤中,为了判断校验信息中的请求时间是否超时,还可以在登录鉴权校验模块和解密过滤模块之间连接请求超时校验模块。
117.步骤s704,接收到请求超时校验模块接收第三校验信息,由请求越权校验模块识别其中的请求信息并判断是否越权,把判断结果添加进第三校验信息得到第四校验信息,把第四校验信息添加进业务请求信息得到第一业务请求信息并发送到解密过滤模块进行处理。
118.本步骤中,为了判断校验信息中的请求信息是否越权,还可以在登录鉴权校验模块和解密过滤模块之间连接请求越权校验模块。
119.步骤s705,接收到请求越权校验模块发出的第四校验信息,由黑名单校验模块识别其中的身份信息并判断是否在预设的黑名单中,把判断结果添加进第四校验信息得到第五校验信息,把第五校验信息添加进业务请求信息得到第一业务请求信息,并发送到解密过滤模块进行处理。
120.本步骤中,为了判断校验信息中的身份信息是否在双责任链网关系统的黑名单中,还可以在请求越权校验模块和解密过滤模块之间连接黑名单校验模块。
121.步骤s602,接收到校验过滤模块发出的第一业务请求信息,由解密过滤模块从中识别需要解密的参数,调用预设的解密算法对这些需要解密的参数解密后,把解密结果添加进第一业务请求信息得到第二业务请求信息并发送至结果过滤模块。或接收校验过滤模块发送的业务反馈信息并发送至结果过滤模块。
122.步骤s603,接收到解密过滤模块发出的第二业务请求信息,由结果过滤模块把第二业务请求信息作为业务请求处理结果发送至双责任链微服务网关系统的网关输出端。或接收沿校验过滤模块、解密过滤模块传递的业务反馈信息,识别业务反馈信息中需要加密的参数,调用预设的加密算法进行加密后,把加密结果添加进业务反馈信息发送到网关输出端。
123.步骤s604,接收到解密过滤模块发出的第二业务请求信息,由风险过滤模块从第
二业务请求信息中识别有害信息,并调用预设的处理方法对有害信息进行无害化处理,把处理结果添加进第二业务请求信息得到第三业务请求信息,并发送到结果过滤模块。或从解密过滤模块接收业务反馈信息,并发送到结果过滤模块。
124.本步骤中,在过滤责任链的解密过滤模块和结果过滤模块之间,还可以连接有风险过滤模块,用来识别业务请求信息中的有害信息并进行无害化处理。
125.步骤s605,双责任链网关的各个模块在执行过程中出现异常时,发送出现的异常类型到异常过滤模块,由异常过滤模块封装这些异常类型后发送到前端应用,起到异常预警的作用。
126.本步骤中,过滤责任链还包括分别与校验过滤模块、解密过滤模块、结果过滤模块、风险过滤模块连接的异常过滤模块。
127.步骤s503,发送所述业务请求处理结果至所述业务系统,或发送所述业务反馈处理结果至所述前端应用。
128.其中,双责任链网关还会把业务请求处理结果或业务反馈处理结果发送到预先开发好的审计日志中,由审计日志记录双责任链微服务网关系统的工作情况。
129.本步骤中,双责任链网关把业务请求处理结果或业务反馈处理结果发送至双责任链微服务网关系统的网关输出端,由网关输出端发送业务请求处理结果到业务系统或发送业务反馈处理结果到前端应用。
130.本技术实施例提供的双责任链微服务网关系统的处理方法,在前端应用向业务系统发送业务请求信息或业务系统向前端应用发送业务反馈信息时,先发送至双责任链微服务网关系统由其中的双责任链网关处理其中包括登录鉴权、参数加解密等公共非业务操作,再发送业务请求处理结果或业务反馈处理结果至对应的业务系统或前端应用。使业务系统中的各个业务微服务只需执行自身的业务功能,实现了公共非业务操作与业务操作的解耦。同样使开发人员在开发业务微服务时也就不需要考虑针对为了执行公共非业务操作进行相应功能的开发,可以专注于业务代码的开发,进而提升了开发人员的工作效率。
131.综上所述,本技术提供的双责任链微服务网关系统,通过把原本分散在业务系统中各个业务微服务的处理公共非业务操作的功能整合为实现不同功能的模块,把这些模块以责任链的形式连接起来得到双责任链网关,由双责任链网关中的各个模块处理业务请求信息或业务反馈信息中的公共非业务操作信息,业务系统的业务微服务处理只需处理业务操作,解决了业务系统中公共非业务操作和业务操作的耦合。在开发业务微服务时,也仅需考虑怎样实现业务功能,不用为每个业务微服务重复开发用于执行公共非业务操作的功能,减少代码重复,也降低公共非业务操作异常对业务的影响,提高了整体开发效率。同样由于采用了双责任链网关实现公共非业务操作,在对执行公共非业务操作的功能进行维护时,只需要对双责任链网关中执行对应功能的模块进行维护,不必逐个对业务系统中需要执行这一公共非业务操作的业务微服务进行维护。
132.需要说明的是,本技术实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本技术实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
133.需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利
要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
134.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
135.另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
136.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
137.本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种双责任链微服务网关系统,其特征在于,包括网关接收端,与所述网关接收端连接的双责任链网关和与所述双责任链网关连接的网关输出端,包括:所述网关接收端,用于接收前端应用发出的业务请求信息或业务系统发出的业务反馈信息,发送所述业务请求信息或所述业务反馈信息至所述双责任链网关;所述双责任链网关,用于接收所述业务请求信息或所述业务反馈信息,识别出所述业务请求信息或所述业务反馈信息中的公共非业务信息进行处理,发送得到的业务请求处理结果或业务反馈处理结果至所述网关输出端;所述网关输出端,用于将接收到的所述业务请求处理结果,发送至所述业务系统,或将接收到的所述业务反馈处理结果,发送至所述前端应用。2.根据权利要求1所述的双责任链微服务网关系统,其特征在于,所述双责任链网关在识别出所述业务请求信息或所述业务反馈信息中的公共非业务信息进行处理时,采用过滤责任链进行处理,所述过滤责任链包括:校验过滤模块、与所述校验过滤模块连接的解密过滤模块和与所述解密过滤模块连接的结果过滤模块;其中,所述校验过滤模块,用于接收所述网关接收端发出的所述业务请求信息,识别所述业务请求信息的公共非业务信息,识别出校验信息时,处理所述校验信息得到校验处理结果,把所述校验处理结果添加进所述业务请求信息中得到第一业务请求信息,发送所述第一业务请求信息至所述解密过滤模块,或接收所述网关接收端发出的所述业务反馈信息,并发送至所述解密过滤模块;所述解密过滤模块,用于接收所述第一业务请求信息,识别第一业务请求信息的公共非业务信息,识别出需要解密的参数时,调用预设的解密算法进行解密,并把解密结果添加进所述第一业务请求信息,得到第二业务请求信息,发送所述第二业务请求信息至所述风险过滤模块,或接收所述校验过滤模块发出的所述业务反馈信息,并发送至所述结果过滤模块;所述结果过滤模块,用于接收所述第二业务请求信息,把所述第二业务请求信息作为所述业务请求处理结果发送至所述网关输出端,或接收所述解密过滤模块发出的所述业务反馈信息,识别所述业务反馈信息的公共非业务信息,识别出需要加密的参数时,调用预设的加密算法进行加密,把加密结果添加进所述业务反馈信息,得到所述业务反馈处理结果并发送至所述网关输出端。3.根据权利要求2所述的双责任链微服务网关系统,其特征在于,所述过滤责任链,还包括:风险过滤模块,连接在所述解密过滤模块和所述结果过滤模块之间;用于接收所述第二业务请求信息,识别所述第二业务请求信息的公共非业务信息,识别出有害信息时,调用预设的处理策略进行无害化处理,把无害化处理结果添加进所述第二业务请求信息得到第三业务请求信息,发送所述第三业务请求信息至所述结果过滤模块,或接收所述解密过滤模块发送的业务反馈信息,发送所述业务反馈信息至所述结果过滤模块。4.根据权利要求3所述的双责任链微服务网关系统,其特征在于,所述过滤责任链,进一步包括:
错误过滤模块,与所述校验过滤模块、所述解密过滤模块、所述风险过滤模块和所述结果过滤模块分别连接;用于接收所述校验过滤模块、所述解密过滤模块、所述风险过滤模块、所述结果过滤模块中的至少之一在执行过程中出现异常形成的异常信息;对所述异常信息进行封装,将封装结果发送至所述网关输出端,并由所述网关输出端发送至所述前端应用。5.根据权利要求2所述的双责任链微服务网关系统,其特征在于,所述校验过滤模块在处理所述校验信息得到校验处理结果,把所述校验处理结果添加进所述业务请求信息中得到第一业务请求信息时,采用校验责任链进行处理,所述校验责任链包括:请求方法校验模块、连接在所述请求方法校验模块和所述解密过滤模块之间的登录鉴权校验模块;其中,所述请求方法校验模块,用于接收所述网关接收端发送的所述业务请求信息,识别所述业务请求信息的公共非业务信息,从所述业务请求信息的公共非业务信息中识别所述校验信息,并识别所述校验信息,识别出请求方法时,判断所述请求方法是否正确,把判断结果添加进所述校验信息得到第一校验信息,发送所述第一校验信息至所述登录鉴权校验模块;所述登录鉴权校验模块,用于接收所述第一校验信息,识别所述第一校验信息,识别出登录鉴权信息时,判断所述登录鉴权信息是否符合预设要求,把判断结果添加进所述第一校验信息得到第二校验信息,把所述第二校验信息作为所述校验处理结果添加进所述业务请求信息得到所述第一业务请求信息,发送所述第一业务请求信息至所述解密过滤模块。6.根据权利要求5所述的双责任链微服务网关系统,其特征在于,所述校验责任链,还包括:连接在所述登陆鉴权校验模块和所述解密过滤模块之间的请求超时校验模块;用于接收所述第二校验信息,识别所述第二校验信息,识别出请求时间时,判断是否超时,把判断结果添加进所述第二校验信息得到第三校验信息,把所述第三校验信息作为所述校验处理结果添加进所述业务请求信息得到所述第一业务请求信息,发送所述第一业务请求信息至所述解密过滤模块。7.根据权利要求6所述的双责任链微服务网关系统,其特征在于,所述校验责任链,还包括:连接在所述请求超时校验模块和所述解密过滤模块之间的请求越权校验模块;用于接收所述第三校验信息,识别所述第三校验信息,识别出请求信息时,判断是否越权,把判断结果添加进所述第三校验信息得到第四校验信息,把所述第四校验信息作为所述校验处理结果添加进所述业务请求信息得到所述第一业务请求信息,发送所述第一业务请求信息至所述解密过滤模块。8.根据权利要求7所述的双责任链微服务网关系统,其特征在于,所述校验责任链,还包括:连接在所述请求越权校验模块和所述解密过滤模块的黑名单校验模块;用于接收所述第四校验信息,识别所述第四校验信息,当识别出身份信息时,判断所述身份信息是否在预设的黑名单中,把判断结果添加进所述第四校验信息得到第五校验信息,把所述第五校验信息作为所述校验处理结果添加进所述业务请求信息得到所述第一业
务请求信息,发送所述第一业务请求信息至所述解密过滤模块。9.根据权利要求1所述的双责任链微服务网关系统,其特征在于,所述双责任链网关将所述业务请求处理结果或所述业务反馈处理结果发送至预开发的审计日志进行记录。10.一种双责任链微服务网关系统处理方法,包括:接收前端应用发出的业务请求信息或业务系统发出的业务反馈信息;响应于识别出所述业务请求信息或所述业务反馈信息中的公共非业务信息,处理所述业务请求信息或所述业务反馈信息中的公共非业务信息得到业务请求处理结果或业务反馈处理结果;发送所述业务请求处理结果至所述业务系统,或发送所述业务反馈处理结果至所述前端应用。
技术总结
本申请提供一种双责任链微服务网关系统及其处理方法,所述系统包括网关接收端,与网关接收端连接的双责任链网关和与双责任链网关连接的网关输出端。通过把原本分散在业务系统中各个业务微服务的处理公共非业务操作的功能整合进双责任链网关统一实现,解决了业务系统中公共非业务操作和业务操作的耦合,减少代码重复,降低公共非业务操作异常对业务的影响,使开发人员不需要关注非业务操作功能,只需要专注于业务代码的开发,提高了整体开发效率。率。率。
技术研发人员:梁俊锋 杨宇
受保护的技术使用者:国网信息通信产业集团有限公司
技术研发日:2021.10.15
技术公布日:2022/3/8