CN114978994B - 一种路由器和路由器令牌异步管理方法 - Google Patents
一种路由器和路由器令牌异步管理方法 Download PDFInfo
- Publication number
- CN114978994B CN114978994B CN202110187557.0A CN202110187557A CN114978994B CN 114978994 B CN114978994 B CN 114978994B CN 202110187557 A CN202110187557 A CN 202110187557A CN 114978994 B CN114978994 B CN 114978994B
- Authority
- CN
- China
- Prior art keywords
- token
- client
- pool
- router
- interface
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 155
- 230000008569 process Effects 0.000 claims abstract description 121
- 238000012545 processing Methods 0.000 claims description 44
- 238000004891 communication Methods 0.000 claims description 37
- 238000010926 purge Methods 0.000 claims description 5
- 230000004308 accommodation Effects 0.000 claims 2
- 230000003993 interaction Effects 0.000 abstract description 42
- 238000012795 verification Methods 0.000 description 24
- 230000004044 response Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- 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/12—Applying verification of the received information
Abstract
本申请公开了一种路由器和路由器令牌异步管理方法,包括:创建令牌池,用于容纳多个令牌。接收多个客户端接口的访问信息,所述访问信息中携带当前路由器返回的最新令牌。所述访问信息中携带的令牌与所述令牌池进行校验;其中,校验时,所述访问信息中携带的令牌与所述令牌池中最新令牌不一致。如果所述令牌与所述令牌池中某一令牌一致,则校验通过,并生成新的令牌储存至所述令牌池中;否则,所述路由器向所述客户端返回错误信息。令牌池中存在多个令牌,可支持多个进程同时执行。避免因客户端在进行某一接口操作时,上一进程未完成而导致令牌信息未更新,使得客户端携带的令牌信息滞后令牌校验错误,提高了数据交互过程中异步情况下的稳定性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种路由器和路由器令牌异步管理方法。
背景技术
在通过APP对路由器的装维功能中,为了保证客户端(APP端)和服务端(路由器)的通讯安全,二者在进行HTTP通讯交互的时候,需要每次交换令牌,来保证通讯的安全性。每次交互中,APP端需要携带上一次通讯服务器返回的令牌字段。服务端会在每次交互接口调用入口会检查令牌的有效性,如果是上次产生的令牌,则继续执行。如果校验令牌出错则会返回错误。此方法中令牌是唯一的,由服务端产生和保存在其数据库。
此方法适用于APP端同步调用。但是大多情况下,APP端操作路由端的GET接口或POST接口时是异步操作的,APP端不等服务端响应会再发送其他请求。因为令牌的唯一性,在异步请求的时候就会有可能会出错。如图1所示,同步的令牌交换流程如图中较细的流程线所示。异步时,如果APP端操作接口3时,上一步接口2还没及时响应。那APP端携带的还是操作接口1时的令牌。但路由端的令牌在接口2调用的时候已经更新。那么在接口3的令牌比对时,就会出现令牌校验错误,如图中较粗的流程线所示。
发明内容
本申请提供了一种路由器和路由器令牌异步管理方法,以解决客户端异步访问进行令牌校验不准确的技术问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
第一方面,本申请实施例公开了一种路由器,包括:
存储器,创建令牌池,用于存储多个令牌;
通信接口,用于接收客户端的并发访问信息,并将所述访问信息发送至中央处理器;所述访问信息中携带令牌为当前所述客户端接收到的最新令牌;
中央处理器,用于接收所述访问信息,并将所述访问信息中携带令牌与所述令牌池内令牌进行比对校验;
如果所述访问信息中携带令牌与所述令牌池中某一令牌一致,则校验通过,生成新的令牌储存至所述令牌池中,并将新产生的令牌传送至所述客户端。
与现有技术相比,本申请的有益效果为:
本申请公开了一种路由器,包括:存储器,创建令牌池,用于存储多个令牌。通信接口,用于接收客户端的并发访问信息,并将所述访问信息发送至中央处理器;所述访问信息中携带令牌为当前所述客户端接收到的最新令牌。中央处理器,用于接收所述访问信息,并将所述访问信息中携带令牌与所述令牌池内令牌进行比对校验。如果所述访问信息中携带令牌与所述令牌池中某一令牌一致,则校验通过,生成新的令牌储存至所述令牌池中,并将新产生的令牌传送至所述客户端。令牌池中存在多个令牌,可支持多个进程同时执行。避免因客户端在进行某一接口操作时,上一进程未完成而导致令牌信息未更新,使得客户端携带的令牌信息滞后令牌校验错误,提高了数据交互过程中异步情况下的稳定性。在固定的时间段内客户端没有访问路由器,那么所有令牌池中的数据会被全部清空,提高了客户端与路由器交互的安全性。
第二方面,本申请实施例公开了一种路由器令牌异步管理方法,包括:
创建令牌池,用于容纳多个令牌;
接收多个客户端接口的访问信息,所述访问信息中携带当前路由器返回的最新令牌;
所述访问信息中携带的令牌与所述令牌池进行校验;其中,校验时,所述访问信息中携带的令牌与所述令牌池中最新令牌不一致;
如果所述令牌与所述令牌池中某一令牌一致,则校验通过,并生成新的令牌储存至所述令牌池中;否则,所述路由器向所述客户端返回错误信息。
与现有技术相比,本申请的有益效果为:
本申请提供了一种路由器令牌异步管理方法,包括:创建令牌池,用于容纳多个令牌。接收多个客户端接口的访问信息,所述访问信息中携带当前路由器返回的最新令牌。所述访问信息中携带的令牌与所述令牌池进行校验;其中,校验时,所述访问信息中携带的令牌与所述令牌池中最新令牌不一致。如果所述令牌与所述令牌池中某一令牌一致,则校验通过,并生成新的令牌储存至所述令牌池中;否则,所述路由器向所述客户端返回错误信息。令牌池中存在多个令牌,可支持多个进程同时执行。避免因客户端在进行某一接口操作时,上一进程未完成而导致令牌信息未更新,使得客户端携带的令牌信息滞后令牌校验错误,提高了数据交互过程中异步情况下的稳定性。在客户端每次调用接口产生新的令牌之前,会计算当前时间和上次产生令牌的时间差,如果大于设定的时间,会销毁上一条令牌,如果小于,则上一条令牌还保留在令牌池中。在固定的时间段内客户端没有访问路由器,那么所有令牌池中的数据会被全部清空,提高了客户端与路由器交互的安全性。因为增加了每条令牌记录的实效性,在一定程度上又增加了安全级别。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的一种令牌管理方法;
图2为本申请实施例提供的一种令牌异步管理方法流程示意图;
图3为本申请实施例提供的另一种令牌异步管理方法流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
Token,是计算机术语:令牌。令牌是一种能够控制站点占有媒体的特殊帧,以区别数据帧及其他控制帧。Token其实说的更通俗点可以叫暗号,在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同的数据操作。本实施例中APP端和路由器的通讯安全,二者在进行HTTP通讯交互的时候,需要每次交换Token,来保证通讯的安全性。APP端为客户端,路由器为服务端。
图2为本申请实施例提供的一种令牌异步管理方法流程示意图,如图2所示为解决客户端和路由器异步情况下调用的安全性和工作的稳定性,本申请实施例提供了一种令牌异步管理方法,包括:
建立令牌池,用于容纳多个令牌。在对令牌池的创建过程中,首先要确定令牌池的最高容纳数量。在利用客户端对路由器进行所有的配置过程中,模拟调试出所有的应用模式下实际访问的最大进程数为p,为了多一些余量,实际项目使用中为n取值为p+2。因此,首先确定出客户端并发访问的数量p,根据客户端可能存在并发访问的数量确定令牌池的容纳数量n,n的取值为p+2,即不会浪费过多数据库资源又保证交互的稳定性。
路由器负责产生和记录令牌,通过文件或者数据库的方式来存储记录令牌。
客户端初次访问路由器时,调用获取设备信息接口对路由器进行访问,路由器生成相应第一令牌Token0,并将令牌保存在令牌池,将第一令牌Token0返回至客户端。
客户端第一接口访问路由器时,首先获取令牌池中最先产生的第一令牌Token0,路由器在通用网关接口进程进入的地方校验令牌池中的令牌。校验过程中,如果客户端携带的令牌与令牌池中的令牌相符,则进行信息交互,进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌存储进入令牌池,此时令牌池内存在第一令牌Token0和第二令牌Token1。路由器将新产生的令牌第二令牌Token1返回客户端。如果客户端携带的令牌与令牌池中的令牌不符,路由器向客户端返回错误信息。
其中,令牌池数据的存储采用FIFO(First Input First Output,先入先出队列)的数据存储原则。当令牌池满后,也就是第n个令牌产生后,再下一次接口操作的时候,产生的新的令牌会覆盖第0个,后面的以此类推。
客户端第二接口访问路由器时,获取并携带令牌池中第一令牌Token0或第二令牌Token1,路由器在通用网关接口进程进入的地方校验令牌池中的令牌。
具体的,如果客户端第二接口的访问进程与第一接口的访问进行为并发进程,即第二接口获取令牌时第一进程并未完成,客户端未接收到返回的第二令牌Token1,则客户端第二接口访问路由器获取并携带的令牌池为第一令牌Token0。路由器在通用网关接口进程进入的地方校验令牌池中的令牌,校验过程时,如果第一接口已完成令牌更新,但因为路由器令牌池中保存有第一令牌Token0和第二令牌Token1。因此,客户端第二接口的访问进程与第一接口的访问进程为并发进程时,客户端携带的令牌第一令牌Token0与令牌池中的令牌相符,校验通过。可避免出现因客户端操作第二接口时,第一接口还没及时响应,而第二接口进行令牌验证时第一接口的访问进程已进行令牌更新,导致第二接口进行令牌验证时出现错误。
校验通过后,路由器进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌第三令牌Token2存储进入令牌池,并将新产生的令牌返回值客户端。
如果客户端第二接口获取令牌时第一进程已完成,路由器完成向客户端发送第二令牌Token1,客户端第二接口接收并携带的令牌为第二令牌Token1。进行验证时,客户端携带的令牌第二令牌Token1与令牌池中的令牌相符,验证通过。路由器进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌第三令牌Token2存储进入令牌池。
因此,可知客户端第二接口携带的令牌为其接收到的路由器最新传送至客户端的令牌。
本实施例提供的令牌管理方法中,第二接口与第一接口访问为并发进程时,第一接口与第二接口均携带第一令牌Token0,即使第二接口的访问进程进行验证时,第一接口已进行令牌更新产生第二令牌Token1,令牌池中存在第一令牌Token0和第二令牌Token1,第二接口同样校验合格,不会出现第二接口校验错误的情况。
同理,客户端第三接口访问路由器时,获取令牌池中第一令牌Token0或第二令牌Token1或第三令牌Token2中一个,路由器在通用网关接口进程进入的地方校验令牌池中的令牌。具体的客户端第三接口访问路由器时,获取到的令牌为当前令牌池中实际存在的最新产生的令牌。如果,客户端携带的令牌与令牌池中的令牌相符,则进行信息交互,进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌存储进入令牌池。如果客户端携带的令牌与令牌池中的令牌不符,路由器向客户端返回错误信息。
具体的,如果第三接口、第二接口和第一接口为并发进程,即第三接口与第二接口、第一接口同时进行访问,获取得到的令牌均为第一令牌Token0。路由器在通用网关接口进程进入的地方校验令牌池中的令牌,校验过程时,令牌池内可保存客户端大于最大并行进程数量的令牌,因此不会出现因客户端操作第三接口时,第一接口、第二接口还没及时响应,而第三接口进行令牌验证时第一接口或第二接口的访问进程已进行令牌更新,导致第三接口进行令牌验证时出现错误。
如果第二接口和第一接口为并发进程,第三接口访问时,第一接口进程中已更新第二令牌Token1,则第三接口访问路由器获取并携带的令牌池为第二令牌Token1。路由器在通用网关接口进程进入的地方校验令牌池中的令牌,校验过程时,令牌池内可保存客户端大于最大并行进程数量的令牌,因此令牌池中同时保存有第二令牌Token1和第一令牌Token0,导致第三接口进行令牌验证时出现错误。
如果第一接口、第二接口和第三接口皆为顺序进程,则第三接口访问路由器时,获取令牌池中第三令牌Token2。
以此类推,客户端第n接口访问路由器时,获取令牌池中第一令牌Token0、第二令牌Token1、第三令牌Token2……或Tokenn-1中的任意一个,路由器在通用网关接口进程进入的地方校验令牌池中的令牌。如果,客户端携带的令牌与令牌池中的令牌相符,则进行信息交互,进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌存储进入令牌池。如果客户端携带的令牌与令牌池中的令牌不符,路由器向客户端返回错误信息。在本实施例中令牌池的容量为n,如果此时令牌池已满,也就是第n个令牌产生后,再下一次接口操作的时候,产生的新的令牌会覆盖第0个,后面的以此类推。客户端第n接口访问进程结束时,产生新的令牌覆盖第一令牌Token0。
客户端第n+1接口访问路由器时,获取令牌池中第一令牌Token0、第二令牌Token1、第三令牌Token2……或Tokenn-1中任意一个,路由器在通用网关接口进程进入的地方校验令牌池中的令牌。如果,客户端携带的令牌与令牌池中的令牌相符,则进行信息交互,进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌存储进入令牌池。如果客户端携带的令牌与令牌池中的令牌不符,路由器向客户端返回错误信息。
因本申请实施例提供的令牌异步管理方法中,令牌池中存在多个令牌,可支持多个进程同时执行。避免因客户端在进行某一接口操作时,上一进程未完成而导致令牌信息未更新,使得客户端携带的令牌信息滞后令牌校验错误。
进一步,在一些实施例中,为提高客户端与路由器异步情况下调用的安全性,建立令牌池定期清空程序。根据用户使用情况设置令牌池清空周期,实际项目使用中为5分钟、或3分钟等。记录每一次接口操作时间,如果最后一次接口操作时间后,在令牌池清空周期内客户端没有进行接口操作。那么令牌池中的内容会被全部清空。当客户端在去操作接口的时候会得到令牌已过期的回复,那么客户端需要从初始接口开始重新产生新的令牌池。
因此,本申请实施例提供了一种令牌异步管理方法,包括:路由器负责产生和记录令牌池,通过文件或者数据库的方式来存储记录令牌池。路由器在公共网关接口进程进入的地方,会去校验令牌池中的令牌,如果校验通过,进入HTTP通讯GET或者POST等方法的处理,在进程结束的地方会产生本次交互产生的新的令牌存储进入令牌池。如果令牌池没有满,会依次存储,如果容量满了,会依次替换出最旧的那一条令牌记录。令牌池中存在多个令牌,可支持多个进程同时执行。避免因客户端在进行某一接口操作时,上一进程未完成而导致令牌信息未更新,使得客户端携带的令牌信息滞后令牌校验错误,提高了数据交互过程中异步情况下的稳定性。在固定的时间段内客户端没有访问路由器,那么所有令牌池中的令牌会被全部清空,提高了客户端与路由器交互的安全性。
在一些实施例中,为进一步提高客户端与路由器交互的安全性,增加了定时管理每条令牌记录的方法。在客户端端每次调用接口产生新的令牌之前,会计算当前时间和上次产生令牌的时间差,如果大于设定时间差,会销毁上一条令牌,如果小于预定时间差,则上一条令牌还保留在令牌池中。路由器还是对令牌池中的所有令牌进行校验。
其中,对于预定时间差的判断值设置,不能太小也不能太大,预定时间差太小太严格会失去异步下多进程并发调用令牌池设计的意义;预定时间差太大安全性不能提高。具体的设置为多少还是要根据使用场景的需求。在手机APP装维的项目中,会计算进程并发通用网关接口进程从触发到最终客户端收到回应的时间,再多增加一些余量时间,就是预定时间差的值。
图3为本申请实施例提供的另一种令牌异步管理方法流程示意图,如图3所示,本申请实施例提供了另一种令牌异步管理方法,包括:
建立令牌池,用于容纳多个令牌。在对令牌池的创建过程中,首先要确定令牌池的最高容纳数量。在利用客户端对路由器进行所有的配置过程中,模拟调试出所有的应用模式下实际访问的最大进程数为p,为了多一些余量,实际项目使用中为n取值为p+2。因此,首先确定出客户端并发访问的数量p,根据客户端并发访问的数量确定令牌池的容纳数量n,n的取值为p+2,即不会浪费过多数据库资源又保证交互的稳定性。路由器负责产生和记录令牌,通过文件或者数据库的方式来存储记录令牌。
客户端初次访问路由器时,调用获取设备信息接口对路由器进行访问,路由器生成第一令牌Token0同时记录第一令牌产生时间Time0,并将第一令牌Token0和第一令牌产生时间Time0,并将令牌保存在令牌池,将第一令牌Token0响应给客户端。
预定时间差,计算进程并发通用网关接口进程从触发到最终客户端收到回应的时间,再多增加一些余量时间,就是预定时间差的值。
客户端第一接口访问路由器时,携带当前客户端接收到的响应令牌第一令牌Token0,路由器在通用网关接口进程进入的地方校验令牌池中的令牌。如果,客户端携带的令牌与令牌池中的令牌相符,则进行信息交互,进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌第二令牌Token1同时记录第二令牌产生时间Time1,并将第二令牌Token1和第二令牌产生时间Time1存储进入令牌池,此时令牌池内内包含第一令牌Token0和第二令牌Token1。将第二令牌Token1传送至客户端。
路由器根据最新的令牌产生的时间与上一令牌产生时间的时间差与预定时间差对比,根据对比结果处理上一令牌。如此时第一接口产生新的令牌第二令牌Token1并记录第二令牌产生时间Time1。将Time1-Time0与预定时间差对比,如果Time1-Time0大于或等于预定时间差,则销毁第一令牌Token0。
其中,令牌池令牌的存储采用FIFO(First Input First Output,先入先出队列)的数据存储原则。当令牌池满后,也就是第n个令牌产生后,再下一次接口操作的时候,产生的新的令牌会覆盖第0个,后面的以此类推。
客户端第二接口访问路由器时,获取令牌池中第一令牌Token0或第二令牌Token1,路由器在通用网关接口进程进入的地方校验令牌池中的令牌。
具体的,如果客户端第二接口的访问进程与第一接口的访问进行为并发进程,即第二接口获取令牌时第一进程并未完成,客户端未接收到返回的第二令牌Token1,则客户端第二接口访问路由器携带的令牌为第一令牌Token0。路由器在通用网关接口进程进入的地方校验令牌池中的令牌,校验过程时,如果第一接口已完成令牌更新,但因为路由器令牌池中保存有第一令牌Token0和第二令牌Token1。因此,客户端第二接口的访问进程与第一接口的访问进程为并发进程时,客户端携带的令牌第一令牌Token0与令牌池中的令牌相符,校验通过。可避免出现因客户端操作第二接口时,第一接口还没及时响应,而第二接口进行令牌验证时第一接口的访问进程已进行令牌更新,导致第二接口进行令牌验证时出现错误。
而此时如果第一接口访问结束后,Time1-Time0大于或等于预定时间差,第一令牌Token0已被销毁,则客户端携带的令牌与令牌池中的令牌不符;如果第一接口访问结束后,Time1-Time0小于预定时间差,第一令牌Token0未销毁,则客户端携带的令牌与令牌池中的令牌相符,校验合格。
如果客户端第二接口获取令牌时第一进程已完成,客户端已接收到第二令牌Token1,令牌池内存在第一令牌Token0和第二令牌Token1。客户端第二接口访问路由器时,携带的令牌池为第二令牌Token1。
如果令牌校验合格,则进行信息交互,进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌并记录令牌产生时间,经新的令牌和令牌产生时间存储进入令牌池。具体的,如果此时令牌池存在第一令牌Token0和第二令牌Token1,则产生的新的令牌为第三令牌Token2;如果此时令牌池存在第一令牌Token0,则产生的新的令牌为第二令牌Token2。相应时间记录与令牌顺序一致。
以此类推,客户端第n接口访问路由器时,获取令牌池中第一令牌Token0、第二令牌Token1、第三令牌Token2……或Tokenn-1中的一个,路由器在通用网关接口进程进入的地方校验令牌池中的令牌。如果,客户端携带的令牌与令牌池中的令牌相符,则进行信息交互,进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌并记录令牌产生时间存储进入令牌池。如果客户端携带的令牌与令牌池中的令牌不符,路由器向客户端返回错误信息。在本实施例中首次产生令牌池中令牌数量为n,因此,客户端第n接口访问进程结束时,产生新的令牌覆盖第n令牌Tokenn-1同时记录令牌产生时间Timen-1。判断更新后第n令牌的有效性有上文相同。
客户端第n+1接口访问路由器时,获取令牌池中第一令牌Token0、第二令牌Token1、第三令牌Token2……或Tokenn-1中的一个,路由器在通用网关接口进程进入的地方校验令牌池中的令牌。如果,客户端携带的令牌与令牌池中的令牌相符,则进行信息交互,进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌存储进入令牌池。如果客户端携带的令牌与令牌池中的令牌不符,路由器向客户端返回错误信息。客户端第n接口访问进程结束时,产生新的令牌覆盖第n令牌Token0,同时记录令牌产生时间Timen0。路由器根据Time0-Timen-1与预定时间差对比,如果Time0-Timen-1大于或等于预定时间差,则销毁上一令牌。
因本申请实施例提供的令牌异步管理方法中,令牌池中存在多个令牌,可支持多个进程同时执行。避免因客户端在进行某一接口操作时,上一进程未完成而导致令牌信息未更新,使得客户端携带的令牌信息滞后令牌校验错误。
进一步,在一些实施例中,为提高客户端与路由器异步情况下调用的安全性,建立令牌池定期清空程序。根据用户使用情况设置令牌池清空周期,实际项目使用中为5分钟、或3分钟等。记录每一次接口操作时间,如果最后一次接口操作时间后,在令牌池清空周期内客户端没有进行接口操作。那么令牌池中的内容会被全部清空。当客户端在去操作接口的时候会得到令牌已过期的回复,那么客户端需要从初始接口开始重新产生新的令牌池。
本申请提供了一种令牌异步管理方法,包括:路由器负责产生和记录令牌及令牌产生时间,通过文件或者数据库的方式来存储记录令牌池。路由器在公共网关接口进程进入的地方,会去校验令牌池中的令牌,如果校验通过,进入HTTP通讯GET或者POST等方法的处理,在进程结束的地方会产生本次交互产生的新的令牌存储进入令牌池,同时记录新的令牌产生时间。如果令牌池没有满,会依次存储,如果容量满了,会依次替换出最旧的那一条令牌记录。令牌池中存在多个令牌,可支持多个进程同时执行。避免因客户端在进行某一接口操作时,上一进程未完成而导致令牌信息未更新,使得客户端携带的令牌信息滞后令牌校验错误,提高了令牌交互过程中异步情况下的稳定性。在客户端每次调用接口产生新的令牌之前,会计算当前时间和上次产生令牌的时间差,如果大于设定的时间,会销毁上一条令牌,如果小于,则上一条令牌还保留在令牌池中。在固定的时间段内客户端没有访问路由器,那么所有令牌池中的令牌会被全部清空,提高了客户端与路由器交互的安全性。因为增加了每条令牌记录的实效性,在一定程度上又增加了安全级别。
另一方面,本申请实施例还提供了一种路由器,包括:存储器,创建令牌池,用于存储多个令牌。通信接口,用于接收客户端的并发访问信息,并将所述访问信息发送至中央处理器;所述访问信息中携带令牌为当前所述客户端接收到的最新令牌。中央处理器,用于接收所述访问信息,并将所述访问信息中携带令牌与所述令牌池内令牌进行比对校验。如果所述访问信息中携带令牌与所述令牌池中某一令牌一致,则校验通过,生成新的令牌储存至所述令牌池中,并将新产生的令牌传送至所述客户端。
在存储器中创建令牌池,用于存储多个令牌。在对令牌池的创建过程中,首先要确定令牌池的最高容纳数量。在利用客户端对路由器进行所有的配置过程中,模拟调试出所有的应用模式下实际访问的最大进程数为p,为了多一些余量,实际项目使用中为n取值为p+2。因此,首先确定出客户端并发访问的数量p,根据客户端可能存在并发访问的数量确定令牌池的容纳数量n,n的取值为p+2,即不会浪费过多数据库资源又保证交互的稳定性。
中央处理器负责产生令牌,并通过文件或者数据库的方式将令牌存储记录在从年存储器中。
客户端初次访问路由器时,调用获取设备信息接口将初次访问信息发送至通信接口。通信接口将初次访问信息传送至中央处理器,由中央处理器生成相应第一令牌Token0,并将第一令牌Token0写入存储器。同时中央处理器将第一令牌Token0经通信接口反馈至客户端。
客户端第一接口访问路由器时,携带第一令牌Token0的信息,经通信接口进入中央处理器,中央处理器在进程进入的地方校验令牌池中的令牌。校验过程中,如果客户端携带的令牌与令牌池中的令牌相符,则进行信息交互,进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌存储进入令牌池,此时令牌池内存在第一令牌Token0和第二令牌Token1。路由器将新产生的令牌第二令牌Token1返回客户端。如果客户端携带的令牌与令牌池中的令牌不符,路由器向客户端返回错误信息。
其中,令牌池令牌的存储采用FIFO(First Input First Output,先入先出队列)的数据存储原则。当令牌池满后,也就是第n个令牌产生后,再下一次接口操作的时候,产生的新的令牌会覆盖第0个,后面的以此类推。
客户端第二接口访问路由器时,获取并携带令牌池中第一令牌Token0或第二令牌Token1,中央处理器在通信接口进程进入的地方校验令牌池中的令牌。
具体的,如果客户端第二接口的访问进程与第一接口的访问进行为并发进程,即第二接口获取令牌时第一进程并未完成,客户端未接收到返回的第二令牌Token1,则客户端第二接口访问路由器获取并携带的令牌池为第一令牌Token0。中央处理器在进行令牌校验时,如果第一接口已完成令牌更新,但因为令牌池中仍保存有第一令牌Token0和第二令牌Token1。因此,客户端第二接口的访问进程与第一接口的访问进程为并发进程时,客户端携带的令牌第一令牌Token0与令牌池中的令牌相符,校验通过。可避免出现因客户端操作第二接口时,第一接口还没及时响应,而第二接口进行令牌验证时第一接口的访问进程已进行令牌更新,导致第二接口进行令牌验证时出现错误。
校验通过后,中央处理器进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌第三令牌Token2存储进入令牌池,并将新的令牌第三令牌Token2经通信接口反馈至客户端。
如果客户端第二接口获取令牌时第一进程已完成,中央处理器完成向客户端发送第二令牌Token1,客户端第二接口接收并携带的令牌为第二令牌Token1。进行验证时,客户端携带的令牌第二令牌Token1与令牌池中的令牌相符,验证通过。中央处理器进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌第三令牌Token2存储进入令牌池。此处具体的令牌排序根据各令牌产生先后顺序。
因此,可知客户端第二接口携带的令牌为其接收到的路由器最新传送至客户端的令牌。
本实施例提供的路由器,包括:存储器,创建令牌池,用于存储多个令牌。通信接口,用于接收客户端的并发访问信息,并将所述访问信息发送至中央处理器;所述访问信息中携带令牌为当前所述客户端接收到的最新令牌。中央处理器,用于接收所述访问信息,并将所述访问信息中携带令牌与所述令牌池内令牌进行比对校验。如果所述访问信息中携带令牌与所述令牌池中某一令牌一致,则校验通过,生成新的令牌储存至所述令牌池中,并将新产生的令牌传送至所述客户端。通过在存储器中存储多个令牌,避免并发访问进程执行过程中因网络堵塞等原因导致令牌校验时,已产生新的令牌,而进程携带为旧的令牌导致令牌校验失败。令牌池中存在多个令牌,可支持多个进程同时执行。避免因客户端在进行某一接口操作时,上一进程未完成而导致令牌信息未更新,使得客户端携带的令牌信息滞后令牌校验错误,提高了数据交互过程中异步情况下的稳定性。在固定的时间段内客户端没有访问路由器,那么所有令牌池中的令牌会被全部清空,提高了客户端与路由器交互的安全性。
进一步,在一些实施例中路由器还包括:时钟管理芯片,与所述中央处理器连接,用于记录所述令牌的产生时间,并将所述时间信息传输至所述中央处理器。所述中央处理器还用于计算相邻生成的两个令牌之间的时间差,如果所述时间差大于预设时间差,则清除在先产生的令牌。
具体的,客户端初次访问路由器,初次访问信息经通信接口传送至中央处理器,中央处理生成第一令牌Token0,时钟管理芯片同步记录第一令牌产生时间Time0,并将第一令牌Token0和第一令牌产生时间Time0保存在令牌池,同时,将第一令牌Token0响应给客户端。
中央处理器中设置有预定时间差,计算进程并发通用网关接口进程从触发到最终客户端收到回应的时间,再多增加一些余量时间,就是预定时间差的值。
客户端第一接口访问路由器时,携带当前客户端接收到的响应令牌第一令牌Token0,中央处理器在进程进入的地方校验令牌池中的令牌。如果,客户端携带的令牌与令牌池中的令牌相符,则进行信息交互,进入HTTP通讯GET或者POST等方法的处理。而后在进程结束的地方会产生本次交互产生的新的令牌第二令牌Token1同时记录第二令牌产生时间Time1,并将第二令牌Token1和第二令牌产生时间Time1存储进入令牌池,此时令牌池内包含第一令牌Token0和第二令牌Token1,中央处理器将第二令牌Token1传送至客户端。
中央处理器根据最新的令牌产生的时间与上一令牌产生时间的时间差与预定时间差对比,根据对比结果处理上一令牌,对存储器进行读写。如此时第一接口产生新的令牌第二令牌Token1并记录第二令牌产生时间Time1。将Time1-Time0与预定时间差对比,如果Time1-Time0大于或等于预定时间差,则销毁第一令牌Token0。如果第一接口访问结束后,Time1-Time0大于或等于预定时间差,第一令牌Token0已被销毁,则客户端携带的令牌与令牌池中的令牌不符;如果第一接口访问结束后,Time1-Time0小于预定时间差,第一令牌Token0未销毁,则客户端携带的令牌与令牌池中的令牌相符,校验合格。通过增加每条Token记录的实效性,在一定程度上又增加了安全级别。
在一些实施例中,时钟管理芯片还与所述通信接口连接,用于记录所述客户端的访问时间;所述中央处理器还用于根据最后一次的访问时间定时清空所述令牌池。建立令牌池定期清空程序。根据用户使用情况设置令牌池清空周期,实际项目使用中为5分钟、或3分钟等。时钟管理芯片记录每一次接口操作时间并将接口操作时间写入存储器,中央处理器调用存储器内存储的接口操作时间,计算最后一次操作时间与当前时间的时间差。如果最后一次接口操作时间后,在令牌池清空周期内客户端没有进行接口操作。那么中央处理器将令牌池中的内容会被全部清空。当客户端在去操作接口的时候会得到令牌已过期的回复,那么客户端需要从初始接口开始重新产生新的令牌池。
由于以上实施方式均是在其他方式之上引用结合进行说明,不同实施例之间均具有相同的部分,本说明书中各个实施例之间相同、相似的部分互相参见即可。在此不再详细阐述。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的电路结构、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种电路结构、物品或者设备所固有的要素。在没有更多限制的情况下,有语句“包括一个……”限定的要素,并不排除在包括所述要素的电路结构、物品或者设备中还存在另外的相同要素。本申请实施例中上或下代表的为操作过程中按照动作先后发生的顺序,上代表先发生的动作,下则代表在后发生的动作。本实施例中第一接口、第二接口、第三接口中第一、第二、第三代表动作发生顺序。
本领域技术人员在考虑说明书及实践这里发明的公开后,将容易想到本申请的其他实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求的内容指出。以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (10)
1.一种路由器,其特征在于,包括:
存储器,创建令牌池,用于存储多个令牌;
通信接口,用于接收客户端的访问信息,并将所述访问信息发送至中央处理器;所述访问信息中携带令牌不是所述令牌池中最新产生的令牌;
中央处理器,用于接收所述访问信息,并将所述访问信息中携带令牌与所述令牌池内的令牌进行比对校验;
如果所述访问信息中携带令牌与所述令牌池中某一令牌一致,则校验通过,生成新的令牌储存至所述令牌池中,并将新产生的令牌传送至所述客户端。
2.根据权利要求1所述的路由器,其特征在于,还包括:时钟管理芯片,与所述中央处理器连接,用于记录所述令牌的产生时间,并将所述时间信息传输至所述中央处理器;
所述中央处理器还用于计算相邻生成的两个令牌之间的时间差,如果所述时间差大于预设时间差,则清除在先产生的令牌。
3.根据权利要求1所述的路由器,其特征在于,时钟管理芯片还与所述通信接口连接,用于记录所述客户端的访问时间;所述中央处理器还用于根据最后一次的访问时间定时清空所述令牌池。
4.根据权利要求1所述的路由器,其特征在于,所述令牌池的令牌容纳数量大于等于所述客户端实际并发访问的最大进程数。
5.一种路由器令牌异步管理方法,其特征在于,包括:
接收多个客户端接口的访问信息,所述访问信息中携带当前路由器返回的最新令牌;
所述访问信息中携带的令牌与令牌池内的令牌进行校验;其中,校验时,所述访问信息中携带的令牌与所述令牌池中最新令牌不一致;所述令牌池的令牌容纳数量至少为2;
如果所述令牌与所述令牌池中某一令牌一致,则校验通过,并生成新的令牌储存至所述令牌池中;否则,所述路由器向所述客户端返回错误信息。
6.根据权利要求5所述的路由器令牌异步管理方法,其特征在于,还包括:确认所述令牌池的容纳数量包括:确认接收到的所述客户端所有的应用模式下实际并发访问的最大进程数,记为p;
根据所述最大进程数确定令牌池的容纳数量,记为n,其中n≥p。
7.根据权利要求6所述的路由器令牌异步管理方法,其特征在于,n=p+2。
8.根据权利要求5所述的路由器令牌异步管理方法,其特征在于,还包括:记录最后一次所述客户端访问所述路由器的时间,如果所述时间后预设时间段内所述客户端没有新的访问进程,则清空所述令牌池。
9.根据权利要求5所述的路由器令牌异步管理方法,其特征在于,所述令牌池的令牌存储采用先入先出的存储原则。
10.根据权利要求5所述的路由器令牌异步管理方法,其特征在于,还包括:计算新的令牌产生的时间与上一令牌产生的时间之间的差值,将所述差值与预定时间差作对比,如果所述差值大于所述预定时间差,则将所述上一令牌在所述令牌池中删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110187557.0A CN114978994B (zh) | 2021-02-18 | 2021-02-18 | 一种路由器和路由器令牌异步管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110187557.0A CN114978994B (zh) | 2021-02-18 | 2021-02-18 | 一种路由器和路由器令牌异步管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114978994A CN114978994A (zh) | 2022-08-30 |
CN114978994B true CN114978994B (zh) | 2024-02-02 |
Family
ID=82954083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110187557.0A Active CN114978994B (zh) | 2021-02-18 | 2021-02-18 | 一种路由器和路由器令牌异步管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114978994B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8132242B1 (en) * | 2006-02-13 | 2012-03-06 | Juniper Networks, Inc. | Automated authentication of software applications using a limited-use token |
CN108809988A (zh) * | 2018-06-14 | 2018-11-13 | 北京中电普华信息技术有限公司 | 一种请求的认证方法及系统 |
CN109639730A (zh) * | 2019-01-21 | 2019-04-16 | 北京工业大学 | 基于令牌的http无状态协议下信息系统数据接口认证方法 |
CN110855672A (zh) * | 2019-11-15 | 2020-02-28 | 无锡家校邦网络科技有限公司 | 一种基于jwt的可手动撤销的授权方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100235284A1 (en) * | 2009-03-13 | 2010-09-16 | Gidah, Inc. | Method and systems for generating and using tokens in a transaction handling system |
-
2021
- 2021-02-18 CN CN202110187557.0A patent/CN114978994B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8132242B1 (en) * | 2006-02-13 | 2012-03-06 | Juniper Networks, Inc. | Automated authentication of software applications using a limited-use token |
CN108809988A (zh) * | 2018-06-14 | 2018-11-13 | 北京中电普华信息技术有限公司 | 一种请求的认证方法及系统 |
CN109639730A (zh) * | 2019-01-21 | 2019-04-16 | 北京工业大学 | 基于令牌的http无状态协议下信息系统数据接口认证方法 |
CN110855672A (zh) * | 2019-11-15 | 2020-02-28 | 无锡家校邦网络科技有限公司 | 一种基于jwt的可手动撤销的授权方法 |
Non-Patent Citations (1)
Title |
---|
时控令牌协议在分布式系统临界区访问中的应用;王立宏;计算机工程与科学(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114978994A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170083579A1 (en) | Distributed data processing method and system | |
CN107229555A (zh) | 标识生成方法和装置 | |
CN111833034B (zh) | 一种批量扣款方法、支付服务器、计算机设备及存储介质 | |
CN109716317A (zh) | 用于创建时间准确的事件流的系统和方法 | |
CN111831748B (zh) | 数据同步方法、装置及存储介质 | |
KR101574871B1 (ko) | 키 값 스토리지에 또는 그로부터 데이터를 저장하고 읽기 위한 방법 및 시스템 | |
CN104156361A (zh) | 一种实现数据同步的方法及系统 | |
CN105138691B (zh) | 分析用户业务量的方法和系统 | |
CN110535654A (zh) | 基于区块链的并行系统部署方法、装置和计算机设备 | |
CN113064744A (zh) | 任务处理方法、装置、计算机可读介质及电子设备 | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN111459948A (zh) | 一种基于中心化块链式账本的数据块删除方法 | |
US8271643B2 (en) | Method for building enterprise scalability models from production data | |
CN111562893A (zh) | 一种重印方法及装置 | |
CN107948242A (zh) | 多服务号模板消息发送方法及系统 | |
CN112332941B (zh) | 一种基于分布式系统的时间误差校正方法 | |
CN114978994B (zh) | 一种路由器和路由器令牌异步管理方法 | |
CN109670793A (zh) | 一种基于区块链的数字资产有效期处理的方法及装置 | |
CN113407356A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111309693A (zh) | 一种数据同步方法、装置、系统、电子设备及存储介质 | |
CN110008681A (zh) | 访问控制方法、设备及系统 | |
US11210156B1 (en) | Intelligent distributed tracing | |
CN110278176A (zh) | 登录验证方法及登录服务器 | |
JP4351360B2 (ja) | 通信装置の時計のうるう秒補正方法及び通信装置 | |
CN107948234A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |