CN111031008B - 一种网关对用户请求进行统一拦截判断是否放行的方法 - Google Patents
一种网关对用户请求进行统一拦截判断是否放行的方法 Download PDFInfo
- Publication number
- CN111031008B CN111031008B CN201911163215.4A CN201911163215A CN111031008B CN 111031008 B CN111031008 B CN 111031008B CN 201911163215 A CN201911163215 A CN 201911163215A CN 111031008 B CN111031008 B CN 111031008B
- Authority
- CN
- China
- Prior art keywords
- request
- user
- address
- url
- information
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提出了一种网关对用户请求进行统一拦截判断是否放行的方法,包括:步骤S1,当接收到用户的服务请求时,对用户进行登陆是否有效以及该服务请求是否合法进行拦截判断;步骤S2,根据预先设置的所有URL地址和过滤器应忽略的URL地址进行判断;步骤S3,判断URL地址是否为有效地址,并判断用户令牌token是否有效;步骤S4,如果用户不具备该地址访问权限,则过滤返回;如果通过,则对该服务请求进行相关用户信息的请求头的添加。本发明明采用网关对用户的请求进行统一的拦截并进行URL以及用户登陆是否有效等一系列的判断来决定是否将请求发送到指定的微服务中去,并根据请求路径路由到不同的微服务,保证尽量的简化开发。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种网关对用户请求进行统一拦截判断是否放行的方法。
背景技术
随着互联网发展的越来越快,技术也更新的非常频繁,比如开发一个***的架构由最初始的单个服务器就能处理演变到现在的利用springcloud技术实现的微服务,随着业务的越来越复杂,结构也变得越来越复杂。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种网关对用户请求进行统一拦截判断是否放行的方法。
为了实现上述目的,本发明的实施例提供一种网关对用户请求进行统一拦截判断是否放行的方法,包括如下步骤:
步骤S1,当接收到用户的服务请求时,对用户进行登陆是否有效以及该服务请求是否合法进行拦截判断;
步骤S2,根据预先设置的所有URL地址和过滤器应忽略的URL地址进行判断;
步骤S3,判断URL地址是否为有效地址,并判断用户令牌token是否有效;
步骤S4,如果用户不具备该地址访问权限,则过滤返回;如果通过,则对该服务请求进行相关用户信息的请求头的添加。
进一步,在所述步骤S3中,所述判断地址和用户token是否有效,包括:
注册匹配器读取配置文件来获取需要忽略的地址请求,通过注册匹配来判断该服务请求URL地址是否属于网关要忽略的地址请求,如果是则进行放行;否则继续进行判断,获取请求头中的token信息,通过token信息从redis数据库中获取用户信息;如果返回异常或者返回的用户信息为空,则请求识别,表示该token信息失效,将错误信息返回到客户端;如果返回的用户信息有效,则将用户信息放到请求的属性attributes中,放行该过滤器。
进一步,判断该服务请求URL地址是否属于网关要忽略的地址请求,包括:通过配置文件中的path.skip属性将需要忽略过滤的地址放进忽略权限匹配校验器中,然后对访问的地址进行比较,如果访问地址属于忽略过滤地址,那么进行放行,不再进行token的校验。
进一步,所述判断用户是否具有该URL的访问权限,包括:
首先判断该服务请求是否进行直接放行,如果不属于则忽略URL地址,判断URL地址是否属于合法或者存在URL地址;如果不存在则返回资源无法找到信息,将具有的URL地址由注册匹配器来获得所拥有的所有合法的URL地址,如果请求的URL地址存在,则根据API字段ID和用户的角色进行调用来判断用户是否具有该URL权限的方法,并返回结果,通过结果判断是否需要放行;如果结果中API字段不为空,则将API字段放进请求的属性attributes中。
进一步,从请求中获取前两个过滤器中保存的属性attributes,并通过URL编码后保存到请求头中,然后将请求放行,请求到达指定的服务进行相应的处理。
进一步,添加上下文信息,对信息进行url编码,再一次对请求进行过滤,对前两次过滤中的请求头的信息再一次处理,将信息转化为json格式并对用户信息进行url编码,然后进行放行到对应的请求服务中去。
根据本发明实施例的网关对用户请求进行统一拦截判断是否放行的方法,基于springcloud gateway网关过滤器的管理技术,结合redis,mysql数据库,用于用户对服务发出请求时对用户进行登陆是否有效并且请求是否合法的拦截判断,根据预先设置的所有url地址,和过滤器应该忽略的url地址进行判断,判断地址是否为有效地址,判断用户token是否有效,然后如果用户不具备该地址访问的权限,则过滤返回,如果通过,则对请求进行一些有关用户信息的请求头的添加,从而对业务进行请求,一些用户相关的信息可以从请求头中获取。本发明解决了用户登陆失效判断以及url请求无效问题,确保发送到微服务的请求都是有效的。本发明采用网关对用户的请求进行统一的拦截并进行url以及用户登陆是否有效等一系列的判断来决定是否将请求发送到指定的微服务中去,并根据请求路径路由到不同的微服务,保证尽量的简化开发。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的网关对用户请求进行统一拦截判断是否放行的方法的流程图;
图2为根据本发明实施例的网关对用户请求进行统一拦截判断是否放行的方法的示意图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明提出一种网关对用户请求进行统一拦截判断是否放行的方法,通过判断地址有效性和token有效性、判断用户是否具有该url的访问权限、添加上下文信息,对信息进行url编码,可以保证其它服务收到的请求为安全合法的,以及对添加的请求头数据进行url编码。
如图1和图2所示,本发明实施例的网关对用户请求进行统一拦截判断是否放行的方法,包括如下步骤:
步骤S1,当接收到用户的服务请求时,对用户进行登陆是否有效以及该服务请求是否合法进行拦截判断。
步骤S2,根据预先设置的所有URL地址和过滤器应忽略的URL地址进行判断。
步骤S3,判断URL地址是否为有效地址,并判断用户令牌token是否有效。
具体的,判断地址和用户token是否有效,包括:
注册匹配器读取配置文件来获取需要忽略的地址请求,通过注册匹配来判断该服务请求URL地址是否属于网关要忽略的地址请求,如果是则进行放行;否则继续进行判断,获取请求头中的token信息,通过token信息从redis数据库中获取用户信息;如果返回异常或者返回的用户信息为空,则请求识别,表示该token信息失效,将错误信息返回到客户端;如果返回的用户信息有效,则将用户信息放到请求request的属性attributes中,放行该过滤器。
在本发明的实施例中,判断该服务请求URL地址是否属于网关要忽略的地址请求,包括:通过配置文件中的path.skip属性将需要忽略过滤的地址放进忽略权限匹配校验器中,然后对访问的地址进行比较,如果访问地址属于忽略过滤地址,那么进行放行,不再进行token的校验。
步骤S4,如果用户不具备该地址访问权限,则过滤返回;如果通过,则对该服务请求进行相关用户信息的请求头的添加。
在本步骤中,判断用户是否具有该URL地址的访问权限,包括如下步骤:
首先判断该服务请求是否进行直接放行,判断此次过滤是否需要放行忽略地址,如果不属于则忽略URL地址,用url匹配校验器判断请求的URL地址是否属于合法或者存在URL地址(匹配校验器通过mysql数据库中的api表将***api注册进匹配校验器中,如果url匹配不成功,那么返回资源找不到);如果不存在则返回资源无法找到信息,然后从请求头中找到Current-Context(由第一个过滤器通过token从redis中找到用户信息保存到该请求头中),获取对应的值就是用户信息,从用户信息中得到所拥有的角色,然后利用urlapi匹配工具获取到该路径所对应的apiid,然后根据id和用户角色想对应的资源校验服务发起请求,通过匹配数据库中role_api表,api_column表得到api字段结果,如果失败,说明该用户不具备该url的访问权限,如果成功,那么将用户具有的api字段信息权限放入到columnIds请求头中,进行放行。
将具有的URL地址由注册匹配器来获得所拥有的所有合法的URL地址,如果请求的URL地址存在,则根据API字段ID和用户的角色进行调用来判断用户是否具有该URL权限的方法,并返回结果,通过结果判断是否需要放行;如果结果中API字段不为空,则将API字段放进请求的属性attributes中。
在本步骤中,从request请求中获取前两个过滤器中保存的属性attributes,并通过URL编码后保存到请求头中,然后将请求放行,请求到达指定的服务进行相应的处理。
添加上下文信息,对信息进行url编码,再一次对请求进行过滤,对前两次过滤中的请求头的信息再一次处理,将信息转化为json格式并对用户信息进行url编码,然后进行放行到对应的请求服务中去,返回请求结果。
根据本发明实施例的网关对用户请求进行统一拦截判断是否放行的方法,基于springcloud gateway网关过滤器的管理技术,结合redis,mysql数据库,用于用户对服务发出请求时对用户进行登陆是否有效并且请求是否合法的拦截判断,根据预先设置的所有url地址,和过滤器应该忽略的url地址进行判断,判断地址是否为有效地址,判断用户token是否有效,然后如果用户不具备该地址访问的权限,则过滤返回,如果通过,则对请求进行一些有关用户信息的请求头的添加,从而对业务进行请求,一些用户相关的信息可以从请求头中获取。本发明解决了用户登陆失效判断以及url请求无效问题,确保发送到微服务的请求都是有效的。本发明采用网关对用户的请求进行统一的拦截并进行url以及用户登陆是否有效等一系列的判断来决定是否将请求发送到指定的微服务中去,并根据请求路径路由到不同的微服务,保证尽量的简化开发。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。
Claims (4)
1.一种网关对用户请求进行统一拦截判断是否放行的方法,其特征在于,包括如下步骤:
步骤S1,当接收到用户的服务请求时,对用户进行登陆是否有效以及该服务请求是否合法进行拦截判断;
步骤S2,根据预先设置的所有URL地址和过滤器应忽略的URL地址进行判断;
步骤S3,判断URL地址是否为有效地址,并判断用户令牌token是否有效;其中,所述判断地址和用户token是否有效,包括:
注册匹配器读取配置文件来获取需要忽略的地址请求,通过注册匹配来判断该服务请求URL地址是否属于网关要忽略的地址请求,如果是则进行放行;否则继续进行判断,获取请求头中的token信息,通过token信息从redis数据库中获取用户信息;如果返回异常或者返回的用户信息为空,则请求识别,表示该token信息失效,将错误信息返回到客户端;如果返回的用户信息有效,则将用户信息放到请求的属性attributes中,放行该过滤器;
步骤S4,如果用户不具备该地址访问权限,则过滤返回;如果通过,则对该服务请求进行相关用户信息的请求头的添加;
其中,所述判断用户是否具有该URL地址的访问权限,包括:
首先判断该服务请求是否进行直接放行,如果不属于则忽略URL地址,判断URL地址是否属于合法或者存在URL地址;如果不存在则返回资源无法找到信息,将具有的URL地址由注册匹配器来获得所拥有的所有合法的URL地址,如果请求的URL地址存在,则根据API字段ID和用户的角色进行调用来判断用户是否具有该URL权限的方法,并返回结果,通过结果判断是否需要放行;如果结果中API字段不为空,则将API字段放进请求的属性attributes中。
2.如权利要求1所述的网关对用户请求进行统一拦截判断是否放行的方法,其特征在于,判断该服务请求URL地址是否属于网关要忽略的地址请求,包括:通过配置文件中的path.skip属性将需要忽略过滤的地址放进忽略权限匹配校验器中,然后对访问的地址进行比较,如果访问地址属于忽略过滤地址,那么进行放行,不再进行token的校验。
3.如权利要求1所述的网关对用户请求进行统一拦截判断是否放行的方法,其特征在于,从请求中获取前两个过滤器中保存的属性attributes,并通过URL编码后保存到请求头中,然后将请求放行,请求到达指定的服务进行相应的处理。
4.如权利要求3所述的网关对用户请求进行统一拦截判断是否放行的方法,其特征在于,添加上下文信息,对信息进行url编码,再一次对请求进行过滤,对前两次过滤中的请求头的信息再一次处理,将信息转化为json格式并对用户信息进行url编码,然后进行放行到对应的请求服务中去。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911163215.4A CN111031008B (zh) | 2019-11-25 | 2019-11-25 | 一种网关对用户请求进行统一拦截判断是否放行的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911163215.4A CN111031008B (zh) | 2019-11-25 | 2019-11-25 | 一种网关对用户请求进行统一拦截判断是否放行的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111031008A CN111031008A (zh) | 2020-04-17 |
CN111031008B true CN111031008B (zh) | 2022-05-24 |
Family
ID=70201761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911163215.4A Active CN111031008B (zh) | 2019-11-25 | 2019-11-25 | 一种网关对用户请求进行统一拦截判断是否放行的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111031008B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112073504B (zh) * | 2020-09-03 | 2023-07-25 | 中国平安财产保险股份有限公司 | 请求转发方法、装置、设备及存储介质 |
CN112261059B (zh) * | 2020-10-30 | 2022-05-13 | 江苏华邦网络科技有限公司 | 一种基于java网关技术平台通用性的接口方法及*** |
CN112328988A (zh) * | 2020-11-27 | 2021-02-05 | 四川长虹电器股份有限公司 | 身份验证信息的接口数据处理方法 |
CN113364798A (zh) * | 2021-06-21 | 2021-09-07 | 浪潮云信息技术股份公司 | 一种基于Redis的用户访问频率处理装置 |
CN114584451B (zh) * | 2022-01-18 | 2023-10-17 | 北京智象信息技术有限公司 | 一种基于微服务环境调试内部服务接口的方法及装置 |
CN114973700B (zh) * | 2022-05-18 | 2024-03-26 | 浙江嘉兴数字城市实验室有限公司 | 一种基于车路协同应用的信号机网联安全装置及工作方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108901022A (zh) * | 2018-06-28 | 2018-11-27 | 深圳云之家网络有限公司 | 一种微服务统一鉴权方法及网关 |
CN109286633A (zh) * | 2018-10-26 | 2019-01-29 | 深圳市华云中盛科技有限公司 | 单点登陆方法、装置、计算机设备及存储介质 |
CN109309666A (zh) * | 2018-08-22 | 2019-02-05 | 中国平安财产保险股份有限公司 | 一种网络安全中的接口安全控制方法及终端设备 |
IN201911007700A (zh) * | 2019-02-27 | 2019-03-22 | ||
CN109948356A (zh) * | 2019-03-25 | 2019-06-28 | 江苏电力信息技术有限公司 | 一种基于微服务架构下服务调用权限控制方法 |
CN110086822A (zh) * | 2019-05-07 | 2019-08-02 | 北京智芯微电子科技有限公司 | 面向微服务架构的统一身份认证策略的实现方法及*** |
-
2019
- 2019-11-25 CN CN201911163215.4A patent/CN111031008B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108901022A (zh) * | 2018-06-28 | 2018-11-27 | 深圳云之家网络有限公司 | 一种微服务统一鉴权方法及网关 |
CN109309666A (zh) * | 2018-08-22 | 2019-02-05 | 中国平安财产保险股份有限公司 | 一种网络安全中的接口安全控制方法及终端设备 |
CN109286633A (zh) * | 2018-10-26 | 2019-01-29 | 深圳市华云中盛科技有限公司 | 单点登陆方法、装置、计算机设备及存储介质 |
IN201911007700A (zh) * | 2019-02-27 | 2019-03-22 | ||
CN109948356A (zh) * | 2019-03-25 | 2019-06-28 | 江苏电力信息技术有限公司 | 一种基于微服务架构下服务调用权限控制方法 |
CN110086822A (zh) * | 2019-05-07 | 2019-08-02 | 北京智芯微电子科技有限公司 | 面向微服务架构的统一身份认证策略的实现方法及*** |
Non-Patent Citations (1)
Title |
---|
基于微服务架构的敏捷开发平台安全机制的设计与实现;王孝宇;《《中国优秀硕士学位论文全文数据库(信息科技辑)》》;20190215;第I138-663页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111031008A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111031008B (zh) | 一种网关对用户请求进行统一拦截判断是否放行的方法 | |
JP6574168B2 (ja) | 端末識別方法、ならびにマシン識別コードを登録する方法、システム及び装置 | |
US9578040B2 (en) | Packet receiving method, deep packet inspection device and system | |
US10194001B1 (en) | Automatic discovery of API information | |
US8356095B2 (en) | Method and apparatus for transferring context information on web server | |
CN112165454B (zh) | 访问控制方法、装置、网关和控制台 | |
US20180077157A1 (en) | Method and system for identifying user information in social network | |
US10375017B2 (en) | Detecting and mitigating registrar collusion in drop-add acquisitions of domain names | |
CN107133516B (zh) | 一种权限控制方法和*** | |
US20110264767A1 (en) | Interactive processing method and apparatus between content-id management servers | |
CN105207974A (zh) | 一种实现用户资源差异化开放的方法、平台、应用和*** | |
US11582232B2 (en) | Authority transfer system, server and method of controlling the server, and storage medium | |
CN110430070B (zh) | 一种服务状态分析方法、装置、服务器、数据分析设备及介质 | |
KR20090058536A (ko) | 네트워크된 컴퓨팅 환경에서 보안 토큰을 획득 및 제공하는방법과 컴퓨터 판독 가능 매체 | |
CN108234122B (zh) | 令牌校验方法和装置 | |
TWI807185B (zh) | 交易風險識別方法及裝置 | |
CN115296877B (zh) | 一种jwt存储令牌失效与续期的方法 | |
CN107018140B (zh) | 一种权限控制方法和*** | |
EP4203438A1 (en) | Message pushing method, and electronic device and storage medium | |
CN111049816A (zh) | 域名地址的过滤方法、设备及计算机可读存储介质 | |
CN110968632B (zh) | 一种数据统一交换的方法与*** | |
CN109688204B (zh) | 基于ndn网络的文件下载方法、节点、终端 | |
CN110401686B (zh) | Whois查询方法、装置、设备及其存储介质 | |
CN107105036B (zh) | 一种用于服务器的活动溯源方法和*** | |
CN114297275A (zh) | 数据抽取方法及装置 |
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 | ||
CB02 | Change of applicant information |
Address after: 100024 room 116, building 3, Shuangqiao dairy factory, Chaoyang District, Beijing Applicant after: Beijing Xiaoxiang innovation Artificial Intelligence Technology Co.,Ltd. Address before: 100024 room 116, building 3, Shuangqiao dairy factory, Chaoyang District, Beijing Applicant before: JEO POLYMERIZATION (BEIJING) ARTIFICIAL INTELLIGENCE TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |