CN105786630A - 一种基于中间件的Web API调控方法 - Google Patents
一种基于中间件的Web API调控方法 Download PDFInfo
- Publication number
- CN105786630A CN105786630A CN201610106010.2A CN201610106010A CN105786630A CN 105786630 A CN105786630 A CN 105786630A CN 201610106010 A CN201610106010 A CN 201610106010A CN 105786630 A CN105786630 A CN 105786630A
- Authority
- CN
- China
- Prior art keywords
- webapi
- middleware
- access request
- api
- strategy
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于中间件的Web API调控方法,属于Web架构优化领域,本发明要解决的技术问题为如何能够实现Web API调控的统一性、稳定性以及安全性。技术方案为:在Web API接口与业务处理层之间增加中间件,所述中间件根据Web API接口发送的访问请求设置对应的策略,一个Web API接口发送的访问请求对应一个或多个策略,中间件按照对应的策略依次对Web API接口发送的访问请求进行校验。
Description
技术领域
本发明涉及Web架构优化领域,具体地说是一种基于中间件的WebAPI调控方法。
背景技术
WebAPI是一种网络应用程序接口,在目前发达的应用场景下,我们往往需要接入Winform客户端、APP程序、网站程序、以及目前热火朝天的微信应用等,这些数据应该可以由同一个服务提供,这个就是我们所需要构建的WebAPI平台,基于上述的需求,很多企业的需求都是以WebAPI优先的理念来设计整个企业应用体系的。WebAPI作为整个纽带的核心,在整个核心层需要考虑到统一性、稳定性以及安全性等方面因素。
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。
专利号为CN102662766B的专利文献公开了一种基于WebElement机制的微博与社交网络信息同步系统与方法,该系统是基于微博与社交网络开放平台的应用程序编程接口API的Web应用,以网页组件(WebElement)机制的新型Web中间件作为功能组件,即封装出具有微博与社交网络信息同步功能的WebElement,再对微博及社交网络的两种开放平台接口进行适配,以网页作为运行载体,实现微博与社交网络的信息同步功能;系统设有四个组成部件:开发人员定制模块、中间件视图模块、功能控制模块和驱动适配模块。但是,该专利存在如下缺点:结构复杂,控制不方便,且不能提高WebAPI调控的统一性、稳定性以及安全性。
综上所述,如何能够实现WebAPI调控的统一性、稳定性和安全性是目前现有技术中存在的技术问题。
发明内容
本发明的技术任务是针对以上不足之处,提供一种基于中间件的WebAPI调控方法,来解决如何能够实现WebAPI调控的统一性、稳定性和安全性的问题。
本发明解决其技术问题所采用的技术方案是:一种基于中间件的WebAPI调控方法,在WebAPI接口与业务处理层之间增加中间件,所述中间件根据WebAPI接口发送的访问请求设置对应的策略,一个WebAPI接口发送的访问请求对应一个或多个策略,中间件按照对应的策略依次对WebAPI接口发送的访问请求进行校验。其中,中间件用于对WebAPI接口发送的访问请求进行统一管理、校验封装、入口拦截以及规范响应。中间件以管道的形式,根据策略规范,对WebAPI接口发送的访问请求依次进行校验;通过全部的策略校验,则将WebAPI接口发送的访问请求传递给业务处理层进行处理。WebAPI接口接收浏览器或app发送的访问请求。
作为优选,该调控方法的步骤如下:
(1)、WebAPI接口发送访问请求到中间件;
(2)、中间件拦截WebAPI接口发送的访问请求,判断是否有策略限制:
①、若有策略限制,则对应策略依次对WebAPI接口发送的访问请求进行校验,判断是否通过对应的全部策略校验:
(a)、若通过对应的全部策略校验,则执行步骤(3)和步骤(4);
(b)、若未通过对应的其中任何一个策略校验,则直接向WebAPI接口发送不合法响应,不再进行剩余的其他策略校验;
②、若无策略限制,则执行步骤(3)和步骤(4);
(3)、将WebAPI接口发送的访问请求传递给业务处理层进行处理;
(4)、业务处理层处理完WebAPI接口发送的访问请求后,业务处理层返回数据到WebAPI接口,WebAPI接口发送的访问请求处理完毕。
更优地,所述策略规范如下:
(1)、公共API所有人都可以进行访问,无策略限制;
(2)、防DOS攻击,过滤拦截黑名单中的请求:指定用户、ip或其它信息作为黑名单校验字段,对同一IP或用户标识每秒请求超过设定上限的,自动加入黑名单,对黑名单中的API请求屏蔽设定时间;
(3)、API安全,身份标识与传递:API身份的标识为cookie、header头标识以及url参数标识;
(4)、可扩展性功能:连续API访问会用到相同的一组数据,则可在API中扩展数据缓存功能,以便该客户端后续请求可以继续使用,减少数据库访问压力。
本发明的一种基于中间件的WebAPI调控方法和现有技术相比,具有以下有益效果:本发明通过中间件在接收到一个WebAPI接口发送的访问请求之初,根据该WebAPI对应的策略设置进行校验,一个WebAPI接口发送的访问请求可有多个策略设置,策略依次传递进行校验;若所有策略设置满足,则继续向后传递进行对应的业务操作;否则终止WebAPI接口发送的访问请求的校验操作,返回异常提示;避免在每个业务中再进行一次逻辑判断,减少了代码量且便于维护。
本发明具有设计合理、使用方便、一物多用等特点,因而,具有很好的推广使用价值。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种基于中间件的WebAPI调控方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
实施例1
本发明的一种基于中间件的WebAPI调控方法,在WebAPI接口与业务处理层之间增加中间件,中间件根据WebAPI接口发送的访问请求设置对应的策略,一个WebAPI接口发送的访问请求对应一个或多个策略,中间件按照对应的策略依次对WebAPI接口发送的访问请求进行校验。
如附图1所示,该调控方法的步骤如下:
(1)、WebAPI接口发送访问请求到中间件;
(2)、中间件拦截WebAPI接口发送的访问请求,判断是否有策略限制:
①、若有策略限制,则对应策略依次对WebAPI接口发送的访问请求进行校验,判断是否通过对应的全部策略校验:
(a)、若通过对应的全部策略校验,则执行步骤(3)和步骤(4);
(b)、若未通过对应的其中任何一个策略校验,则直接向WebAPI接口发送不合法响应,不再进行剩余的其他策略校验;
②、若无策略限制,则执行步骤(3)和步骤(4);
(3)、将WebAPI接口发送的访问请求传递给业务处理层进行处理;
(4)、业务处理层处理完WebAPI接口发送的访问请求后,业务处理层返回数据到WebAPI接口,WebAPI接口发送的访问请求处理完毕。
策略规范如下:
(1)、公共API所有人都可以进行访问,无策略限制;
(2)、防DOS攻击,过滤拦截黑名单中的请求:指定用户、ip或其它信息作为黑名单校验字段,对同一IP或用户标识每秒请求超过设定上限的,自动加入黑名单,对黑名单中的API请求屏蔽设定时间;
(3)、API安全,身份标识与传递:API身份的标识为cookie、header头标识以及url参数标识;
(4)、可扩展性功能:连续API访问会用到相同的一组数据,则可在API中扩展数据缓存功能,以便该客户端后续请求可以继续使用,减少数据库访问压力。
统一封装请求响应规定如下:
400INVALIDREQUEST(无效请求)-[POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401Unauthorized(未经授权的、未经许可的)-[*]:表示用户没有权限(令牌、用户名、密码错误)。
403Forbidden(禁止)-[*]表示用户得到授权(与401错误相对),但是访问是被禁止的。
404NOTFOUND(找不到、未查明)-[*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406NotAcceptable(不接受)-[GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410Gone-[GET]:用户请求的资源被永久删除,且不会再得到的。
422Unprocesableentity(无法处理的请求实体、客户端错误)-[POST/PUT/PATCH]当创建一个对象时,发生一个验证错误。
500INTERNALSERVERERROR(内部服务器错误)-[*]:服务器发生错误,用户将无法判断发出的请求是否成功。
比如:
身份验证无效的,中间件返回401。
在黑名单中的用户请求API的时候中间件返回403。
实施例2
以下以某站为例进行中间件调控内容的详细描述,使本发明的上诉目标、特征和优点更加清晰、易懂。
router.all(‘*',黑名单校验方法);
router.get(‘/xxx/aaa',[策略1,策略2,…,策略n],业务处理);
对所有WebAPI接口发送的访问请求执行黑名单校验,若客户端IP或标识的用户身份在黑名单中,则返回403,禁止API请求;否则向后传递WebAPI接口发送的访问请求。
策略1:假如为必须有用户身份。设定操作为:取cookie中的token进行身份校验,若对应用户合法,则校验成功传递WebAPI接口发送的访问请求给后续策略校验;否则终止请求传递,返回401,用户身份不合法。
策略2:假如为要缓存用户功能权限数据10分钟,在进行操作成功后向后传递WebAPI接口发送的访问请求,进行后续策略校验。
。。。。。。
通过全部策略校验,WebAPI接口发送的访问请求传递给业务处理层:根据策略2缓存的功能权限,进行一些数据操作后返回响应。
响应返回后,WebAPI接口发送的访问请求处理完毕。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的两种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (3)
1.一种基于中间件的WebAPI调控方法,其特征在于:在WebAPI接口与业务处理层之间增加中间件,所述中间件根据WebAPI接口发送的访问请求设置对应的策略,一个WebAPI接口发送的访问请求对应一个或多个策略,中间件按照对应的策略依次对WebAPI接口发送的访问请求进行校验。
2.根据权利要求1所述的一种基于中间件的WebAPI调控方法,其特征在于:该调控方法的步骤如下:
(1)、WebAPI接口发送访问请求到中间件;
(2)、中间件拦截WebAPI接口发送的访问请求,判断是否有策略限制:
①、若有策略限制,则对应策略依次对WebAPI接口发送的访问请求进行校验,判断是否通过对应的全部策略校验:
(a)、若通过对应的全部策略校验,则执行步骤(3)和步骤(4);
(b)、若未通过对应的其中任何一个策略校验,则直接向WebAPI接口发送不合法响应,不再进行剩余的其他策略校验;
②、若无策略限制,则执行步骤(3)和步骤(4);
(3)、将WebAPI接口发送的访问请求传递给业务处理层进行处理;
(4)、业务处理层处理完WebAPI接口发送的访问请求后,业务处理层返回数据到WebAPI接口,WebAPI接口发送的访问请求处理完毕。
3.根据权利要求2所述的一种基于中间件的WebAPI调控方法,其特征在于:所述策略规范如下:
(1)、公共API所有人都可以进行访问,无策略限制;
(2)、防DOS攻击,过滤拦截黑名单中的请求:指定用户、ip或其它信息作为黑名单校验字段,对同一IP或用户标识每秒请求超过设定上限的,自动加入黑名单,对黑名单中的API请求屏蔽设定时间;
(3)、API安全,身份标识与传递:API身份的标识为cookie、header头标识以及url参数标识;
(4)、可扩展性功能:连续API访问会用到相同的一组数据,则可在API中扩展数据缓存功能,以便该客户端后续请求可以继续使用,减少数据库访问压力。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610106010.2A CN105786630B (zh) | 2016-02-26 | 2016-02-26 | 一种基于中间件的Web API调控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610106010.2A CN105786630B (zh) | 2016-02-26 | 2016-02-26 | 一种基于中间件的Web API调控方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105786630A true CN105786630A (zh) | 2016-07-20 |
CN105786630B CN105786630B (zh) | 2019-02-15 |
Family
ID=56403714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610106010.2A Active CN105786630B (zh) | 2016-02-26 | 2016-02-26 | 一种基于中间件的Web API调控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105786630B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107204982A (zh) * | 2017-06-13 | 2017-09-26 | 成都四方伟业软件股份有限公司 | 交互式数据系统通用安全防护系统 |
CN107273144A (zh) * | 2017-08-15 | 2017-10-20 | 广州市爱菩新医药科技有限公司 | 快速构建网络应用程序接口的装置 |
CN107317816A (zh) * | 2017-07-05 | 2017-11-03 | 北京信息职业技术学院 | 一种基于客户端应用程序鉴别的网络访问控制方法 |
CN107862810A (zh) * | 2017-09-28 | 2018-03-30 | 中国民生银行股份有限公司 | 一种基于浏览器的自助终端控制系统 |
WO2018121331A1 (zh) * | 2016-12-28 | 2018-07-05 | 阿里巴巴集团控股有限公司 | 攻击请求的确定方法、装置及服务器 |
CN109657485A (zh) * | 2018-12-13 | 2019-04-19 | 广州虎牙信息科技有限公司 | 权限处理方法、装置、终端设备和存储介质 |
CN111177660A (zh) * | 2018-11-09 | 2020-05-19 | 千寻位置网络有限公司 | 一种开放平台脚本代码的权限校验方法 |
CN113805859A (zh) * | 2021-08-20 | 2021-12-17 | 浪潮金融信息技术有限公司 | 一种智慧屏中间件设计的方法、系统及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413198A (zh) * | 2011-09-30 | 2012-04-11 | 山东中创软件工程股份有限公司 | 一种基于安全标记的访问控制方法和相关系统 |
CN103249045A (zh) * | 2013-05-13 | 2013-08-14 | 华为技术有限公司 | 一种身份识别的方法、装置和系统 |
US20130339505A1 (en) * | 2012-06-19 | 2013-12-19 | Microsoft Corporation | Multi-tenant middleware cloud service technology |
CN104104652A (zh) * | 2013-04-03 | 2014-10-15 | 阿里巴巴集团控股有限公司 | 一种人机识别方法、网络服务接入方法及相应的设备 |
CN104618404A (zh) * | 2015-03-10 | 2015-05-13 | 网神信息技术(北京)股份有限公司 | 防止网络攻击Web服务器的处理方法、装置及系统 |
-
2016
- 2016-02-26 CN CN201610106010.2A patent/CN105786630B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413198A (zh) * | 2011-09-30 | 2012-04-11 | 山东中创软件工程股份有限公司 | 一种基于安全标记的访问控制方法和相关系统 |
US20130339505A1 (en) * | 2012-06-19 | 2013-12-19 | Microsoft Corporation | Multi-tenant middleware cloud service technology |
CN104104652A (zh) * | 2013-04-03 | 2014-10-15 | 阿里巴巴集团控股有限公司 | 一种人机识别方法、网络服务接入方法及相应的设备 |
CN103249045A (zh) * | 2013-05-13 | 2013-08-14 | 华为技术有限公司 | 一种身份识别的方法、装置和系统 |
CN104618404A (zh) * | 2015-03-10 | 2015-05-13 | 网神信息技术(北京)股份有限公司 | 防止网络攻击Web服务器的处理方法、装置及系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121331A1 (zh) * | 2016-12-28 | 2018-07-05 | 阿里巴巴集团控股有限公司 | 攻击请求的确定方法、装置及服务器 |
CN108259425A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 攻击请求的确定方法、装置及服务器 |
CN107204982A (zh) * | 2017-06-13 | 2017-09-26 | 成都四方伟业软件股份有限公司 | 交互式数据系统通用安全防护系统 |
CN107204982B (zh) * | 2017-06-13 | 2019-02-05 | 成都四方伟业软件股份有限公司 | 交互式数据系统通用安全防护系统 |
CN107317816B (zh) * | 2017-07-05 | 2020-06-12 | 北京信息职业技术学院 | 一种基于客户端应用程序鉴别的网络访问控制方法 |
CN107317816A (zh) * | 2017-07-05 | 2017-11-03 | 北京信息职业技术学院 | 一种基于客户端应用程序鉴别的网络访问控制方法 |
CN107273144A (zh) * | 2017-08-15 | 2017-10-20 | 广州市爱菩新医药科技有限公司 | 快速构建网络应用程序接口的装置 |
CN107862810A (zh) * | 2017-09-28 | 2018-03-30 | 中国民生银行股份有限公司 | 一种基于浏览器的自助终端控制系统 |
CN111177660A (zh) * | 2018-11-09 | 2020-05-19 | 千寻位置网络有限公司 | 一种开放平台脚本代码的权限校验方法 |
CN111177660B (zh) * | 2018-11-09 | 2024-01-05 | 千寻位置网络有限公司 | 一种开放平台脚本代码的权限校验方法 |
CN109657485A (zh) * | 2018-12-13 | 2019-04-19 | 广州虎牙信息科技有限公司 | 权限处理方法、装置、终端设备和存储介质 |
CN113805859A (zh) * | 2021-08-20 | 2021-12-17 | 浪潮金融信息技术有限公司 | 一种智慧屏中间件设计的方法、系统及介质 |
CN113805859B (zh) * | 2021-08-20 | 2024-05-10 | 浪潮金融信息技术有限公司 | 一种智慧屏中间件设计的方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105786630B (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105786630A (zh) | 一种基于中间件的Web API调控方法 | |
US20180012012A1 (en) | System and method for controlling state tokens | |
US9766914B2 (en) | System and methods for remote maintenance in an electronic network with multiple clients | |
US9467475B2 (en) | Secure mobile framework | |
CN108173850A (zh) | 一种基于区块链智能合约的身份认证系统和身份认证方法 | |
JP5191376B2 (ja) | リスクベース認証システムおよび危険度情報取得サーバならびにリスクベース認証方法 | |
CN110599095B (zh) | 基于区块链网络的危废处理方法及区块链网络的节点 | |
CN103404103A (zh) | 将访问控制系统与业务管理系统相结合的系统和方法 | |
CN109150800A (zh) | 一种登录访问方法、系统和存储介质 | |
CN107872445A (zh) | 接入认证方法、设备和认证系统 | |
CN111797404B (zh) | 一种基于区块链及智能合约的IIoT设备安全装置 | |
CN102404114A (zh) | Web服务监控方法和系统 | |
CN115277784B (zh) | 便于实现本地权限控制的工业物联网系统及控制方法 | |
CN112953951B (zh) | 一种基于国产cpu的用户登录验证和安全性检测方法及系统 | |
DE102022104902A1 (de) | Online-sicherheitsdienste auf der grundlage von in speichervorrichtungen implementierten sicherheitsmerkmalen | |
US11463477B2 (en) | Policy management system to provide authorization information via distributed data store | |
CN109379404B (zh) | 基于tdi驱动和代理服务器有效代理转发数据的方法 | |
CA3076565C (en) | Method for providing data packets from a can bus, control device and system having a can bus | |
CN110493199A (zh) | 一种防止互联网Web攻击的方法和装置 | |
US20080178267A1 (en) | Method and system for simplifying role based authorization profile implementation | |
CN116055486B (zh) | 一种基于区块链的策略安全管理装置及方法 | |
CN114598474B (zh) | 硬件设备抵近可信管理方法、装置、计算机设备及介质 | |
CN111988284B (zh) | Pdp的配置方法、装置、电子设备和存储介质 | |
US20120317298A1 (en) | Scripting environment for network device | |
CN107025404A (zh) | 一种监控进程的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |