CN105141589B - 一种多实例的token共享与维护的方法及系统 - Google Patents
一种多实例的token共享与维护的方法及系统 Download PDFInfo
- Publication number
- CN105141589B CN105141589B CN201510475704.9A CN201510475704A CN105141589B CN 105141589 B CN105141589 B CN 105141589B CN 201510475704 A CN201510475704 A CN 201510475704A CN 105141589 B CN105141589 B CN 105141589B
- Authority
- CN
- China
- Prior art keywords
- token
- timeliness
- node
- cluster
- module
- 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
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/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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/108—Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种多实例的token共享与维护的方法及系统,其方法包括:步骤1:在集群中选定一个实例为主节点,其余所有实例均为从节点;步骤2:主节点从服务端获取token;步骤3:调用一个节点,判断所述节点是否是主节点;如果是,执行步骤5;否则,执行步骤4;步骤4:检查所述从节点是否持有token,如果是,执行步骤5;否则,从节点从共享内存中获取token,执行步骤5;步骤5:判断token是否丧失集群内时效性;如果是,重新获取token,执行步骤6;否则,执行步骤6;步骤6:判断是否接收到调用指令,如果是,执行步骤3;否则,结束。能够自动实现鉴权和token共享;保证虚拟运营商的业务不受底层技术规范的限制和影响。
Description
技术领域
本发明涉及一种多实例的token共享与维护的方法及系统。
背景技术
随着虚拟运营商的出现,3大运营商陆续公布自己的对外商用接口进行支撑合作,这些商用接口形式多样,方式不一。并仿照互联网接口的理念进行了功能划分。与传内部统接口的最大不同在多出了鉴权的概念,并产生了用户名、密码、token、key、时效和调用次数等鉴权信息。
ESB作为成熟的接口总线,为了适应时代的需要,发挥更大的作用,实现了面向多系统、多实例的token共享和维护机制。
发明内容
本发明所要解决的技术问题是提供一种在多实例间实现token共享,自动更新,管理鉴权行为多实例的token共享与维护的方法及系统。
本发明解决上述技术问题的技术方案如下:一种多实例的token共享与维护的方法,具体包括以下步骤:
步骤1:将集群中的每个实例定义为一个节点,并选定一个实例为主节点,其余所有实例均为从节点;
步骤2:主节点从服务端获取token,并将获取的token存入共享内存和数据库中;
步骤3:调用一个节点,判断所述节点是否是主节点;如果是,执行步骤5;否则,执行步骤4;
步骤4:检查所述从节点是否持有token,如果是,执行步骤5;否则,从节点从共享内存中获取token,执行步骤5;
步骤5:对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,重新获取token,执行步骤6;否则,执行步骤6;
步骤6:判断是否接收到调用指令,如果是,执行步骤3;否则,结束。
本发明的有益效果是:本发明提供的token共享和管理机制,能够自动实现鉴权和token共享,避免因token、key等变动因素过期,导致接口调用失效;保证虚拟运营商的业务不受底层技术规范的限制和影响。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述token的时效性,是指在预设的时间内或预设的使用次数内,所述token是有效的;并将其中预设的时间或预设的使用次数定义为时效;
如果token超出预设的时间或预设的使用次数,则判断token丧失时效性;否则,则判断token未丧失时效性;
所述token的时效包括集群内时效和服务时效。
进一步,所述集群内时效小于服务时效,在集群重启时,存储在共享内存和数据库中的token仍然有效,因此统一使用数据库存储的token完成加载。
进一步,所述步骤5具体包括以下步骤:
步骤5.1:对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,执行步骤5.2;否则,执行步骤6;
步骤5.2:判断所述节点是否是主节点,如果是,执行步骤5.3;否则,执行步骤5.4;
步骤5.3:主节点重新从服务端获取token,并存入共享内存和数据库,执行步骤6;
步骤5.4:从节点丢弃已持有的token,从共享内存中重新获取token,执行步骤6。
进一步,同时对多个节点进行集群内时效性检查时,主节点优先进行集群内时效性检查。
进一步,所述主节点额外运行集群内时效性检查,在没有调用时也会更新共享内存中和数据库中的token。
本发明解决上述技术问题的技术方案如下:一种多实例的token共享与维护的系统,包括实例定义模块、主节点模块、调用模块和时效性模块;
所述实例定义模块用于将集群中的每个实例定义为一个节点,并选定一个实例为主节点,其余所有实例均为从节点;
所述主节点模块用于控制主节点从服务端获取token,并将获取的token存入共享内存和数据库中;
所述调用模块用于调用一个节点,判断所述节点是否是主节点;如果是,触发时效性模块;否则,检查所述从节点是否持有token,如没有,所述从节点从共享内存中获取token,触发时效性模块;
所述时效性模块用于对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,重新获取token,完成对token共享与维护,等待下一次调用;否则,完成对token共享与维护,等待下一次调用。
本发明的有益效果是:本发明提供的token共享和管理机制,能够自动实现鉴权和token共享,避免因token、key等变动因素过期,导致接口调用失效;保证虚拟运营商的业务不受底层技术规范的限制和影响。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述token的时效性,是指在预设的时间内或预设的使用次数内,所述token是有效的;并将其中预设的时间或预设的使用次数定义为时效;
如果token超出预设的时间或预设的使用次数,则判断token丧失时效性;否则,则判断token未丧失时效性;
所述token的时效包括集群内时效和服务时效。
进一步,所述集群内时效小于服务时效,在集群重启时,存储在共享内存和数据库中的token仍然有效,因此统一使用数据库存储的token完成加载。
进一步,所述时效性模块包括时效检查模块和节点判断模块;
所述时效检查模块用于对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;
所述节点判断模块用于判断所述节点是否是主节点,如果是,节点重新从服务端获取token,并存入共享内存和数据库;否则,从节点丢弃已持有的token,从共享内存中重新获取token。
进一步,同时对多个节点进行集群内时效性检查时,主节点优先进行集群内时效性检查。
进一步,所述主节点额外运行集群内时效性检查,在没有调用时也会更新共享内存中和数据库中的token。
附图说明
图1为本发明实施例所述的一种多实例的token共享与维护的方法流程图;
图2为本发明实施例所述的一种多实例的token共享与维护的系统结构框图。
附图中,各标号所代表的部件列表如下:
1、实例定义模块,2、主节点模块,3、调用模块,4、时效性模块,41、时效检查模块,42、节点判断模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明实施例所述的一种多实例的token共享与维护的方法,具体包括以下步骤:
步骤1:将集群中的每个实例定义为一个节点,并选定一个实例为主节点,其余所有实例均为从节点;
步骤2:主节点从服务端获取token,并将获取的token存入共享内存和数据库中;
步骤3:调用一个节点,判断所述节点是否是主节点;如果是,执行步骤5;否则,执行步骤4;
步骤4:检查所述从节点是否持有token,如果是,执行步骤5;否则,从节点从共享内存中获取token,执行步骤5;
步骤5:对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,重新获取token,执行步骤6;否则,执行步骤6;
步骤6:判断是否接收到调用指令,如果是,执行步骤3;否则,结束。
所述token的时效性,是指在预设的时间内或预设的使用次数内,所述token是有效的;并将其中预设的时间或预设的使用次数定义为时效;
如果token超出预设的时间或预设的使用次数,则判断token丧失时效性;否则,则判断token未丧失时效性;
所述token的时效包括集群内时效和服务时效。
所述集群内时效小于服务时效,在集群重启时,存储在共享内存和数据库中的token仍然有效,因此统一使用数据库存储的token完成加载。
所述步骤5具体包括以下步骤:
步骤5.1:对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,执行步骤5.2;否则,执行步骤6;
步骤5.2:判断所述节点是否是主节点,如果是,执行步骤5.3;否则,执行步骤5.4;
步骤5.3:主节点重新从服务端获取token,并存入共享内存和数据库,执行步骤6;
步骤5.4:从节点丢弃已持有的token,从共享内存中重新获取token,执行步骤6。
同时对多个节点进行集群内时效性检查时,主节点优先进行集群内时效性检查。
所述主节点额外运行集群内时效性检查,在没有调用时也会更新共享内存中和数据库中的token。
如图2所示,为本发明实施例所述的一种多实例的token共享与维护的系统,包括实例定义模块1、主节点模块2、调用模块3和时效性模块4;
所述实例定义模块1用于将集群中的每个实例定义为一个节点,并选定一个实例为主节点,其余所有实例均为从节点;
所述主节点模块2用于控制主节点从服务端获取token,并将获取的token存入共享内存和数据库中;
所述调用模块3用于调用一个节点,判断所述节点是否是主节点;如果是,触发时效性模块;否则,检查所述从节点是否持有token,如没有,所述从节点从共享内存中获取token,触发时效性模块;
所述时效性模块4用于对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,重新获取token,完成对token共享与维护,等待下一次调用;否则,完成对token共享与维护,等待下一次调用。
所述token的时效性,是指在预设的时间内或预设的使用次数内,所述token是有效的;并将其中预设的时间或预设的使用次数定义为时效;
如果token超出预设的时间或预设的使用次数,则判断token丧失时效性;否则,则判断token未丧失时效性;
所述token的时效包括集群内时效和服务时效。
所述集群内时效小于服务时效,在集群重启时,存储在共享内存和数据库中的token仍然有效,因此统一使用数据库存储的token完成加载。
所述时效性模块4包括时效检查模块41和节点判断模块42;
所述时效检查模块41用于对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;
所述节点判断模块42用于判断所述节点是否是主节点,如果是,节点重新从服务端获取token,并存入共享内存和数据库;否则,从节点丢弃已持有的token,从共享内存中重新获取token。
同时对多个节点进行集群内时效性检查时,主节点优先进行集群内时效性检查。
所述主节点额外运行集群内时效性检查,在没有调用时也会更新共享内存中和数据库中的token。
角色划分:
鉴权接口不应该是任何节点都有权调用的,一旦调用鉴权接口,有效token和key必然发生改变,导致其他实例无法正常通信。因此集群必须指定一个唯一的节点,负责完成鉴权调用,token分享,并进行token的定期检查工作。我们把负责该项工作的实例称为主节点,其他实例称为副节点。
共享机制:
Token作为整个集群的唯一资源,必须实现共享才能发挥作用,根据ESB发布新服务时的现有机制,设计一套实现面向多系统鉴权信息的分享、存储、变更机制。
时效管理:
Token在使用时有时间或次数限制,为了避免超出限制,ESB根据实际情况设置警戒值,该值略低于实际期限或次数,只要超出该警戒值,ESB就会主导发起鉴权,以获取新的token信息。
集群token管控:
前面的角色划分和时效管理已经构建出了调用管控的基础,但是ESB是一个多实例的系统,各子实例都存在启动、更新的情况。必须有一套面对新实例的加入时的token自动获取和检查机制,才能保证实例接口的正常调用。
规定所有实例在启动时,都要检查内存中的token信息是否存在,
不存时,首先从数据库获取主实例存储的有效信息,并进行时效检查。如果超出警戒时效,则要从主实例的内存获取当前有效token。
至于主实例如何处理超时token和更新内存,则完全由主实例决定。即使超出警戒值,副实例也不进行token鉴权调用。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种多实例的token共享与维护的方法,其特征在于,具体包括以下步骤:
步骤1:将集群中的每个实例定义为一个节点,并选定一个实例为主节点,其余所有实例均为从节点;
步骤2:主节点从服务端获取token,并将获取的token存入共享内存和数据库中;
步骤3:调用一个节点,判断所述节点是否是主节点;如果是,执行步骤5;否则,执行步骤4;
步骤4:检查所述从节点是否持有token,如果是,执行步骤5;否则,从节点从共享内存中获取token,执行步骤5;
步骤5:对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,重新获取token,执行步骤6;否则,执行步骤6,其中所述步骤5具体包括以下步骤:
步骤5.1:对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,执行步骤5.2;否则,执行步骤6;
步骤5.2:判断所述节点是否是主节点,如果是,执行步骤5.3;否则,执行步骤5.4;
步骤5.3:主节点重新从服务端获取token,并存入共享内存和数据库,执行步骤6;
步骤5.4:从节点丢弃已持有的token,从共享内存中重新获取token,执行步骤6;
步骤6:判断是否接收到调用指令,如果是,执行步骤3;否则,结束;
其中所述主节点额外运行集群内时效性检查,在没有调用时也会更新共享内存中和数据库中的token。
2.根据权利要求1所述的一种多实例的token共享与维护的方法,其特征在于,所述token的时效性,是指在预设的时间内或预设的使用次数内,所述token是有效的;并将其中预设的时间或预设的使用次数定义为时效;
如果token超出预设的时间或预设的使用次数,则判断token丧失时效性;否则,则判断token未丧失时效性;
所述token的时效包括集群内时效和服务时效。
3.根据权利要求2所述的一种多实例的token共享与维护的方法,其特征在于,所述集群内时效小于服务时效,在集群重启时,存储在共享内存和数据库中的token仍然有效,因此统一使用数据库存储的token完成加载。
4.根据权利要求1所述的一种多实例的token共享与维护的方法,其特征在于,同时对多个节点进行集群内时效性检查时,主节点优先进行集群内时效性检查。
5.一种多实例的token共享与维护的系统,其特征在于,包括实例定义模块、主节点模块、调用模块和时效性模块;
所述实例定义模块用于将集群中的每个实例定义为一个节点,并选定一个实例为主节点,其余所有实例均为从节点;
所述主节点模块用于控制主节点从服务端获取token,并将获取的token存入共享内存和数据库中;
所述调用模块用于调用一个节点,判断所述节点是否是主节点;如果是,触发时效性模块;否则,检查所述从节点是否持有token,如没有,所述从节点从共享内存中获取token,触发时效性模块;
所述时效性模块用于对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,重新获取token,完成对token共享与维护,等待下一次调用;否则,完成对token共享与维护,等待下一次调用,其中所述主节点额外运行集群内时效性检查,在没有调用时也会更新共享内存中和数据库中的token,所述时效性模块包括时效检查模块和节点判断模块;
所述时效检查模块用于对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;
所述节点判断模块用于判断所述节点是否是主节点,如果是,节点重新从服务端获取token,并存入共享内存和数据库;否则,从节点丢弃已持有的token,从共享内存中重新获取token。
6.根据权利要求5所述的一种多实例的token共享与维护的系统,其特征在于,所述token的时效性,是指在预设的时间内或预设的使用次数内,所述token是有效的;并将其中预设的时间或预设的使用次数定义为时效;
如果token超出预设的时间或预设的使用次数,则判断token丧失时效性;否则,则判断token未丧失时效性;
所述token的时效包括集群内时效和服务时效。
7.根据权利要求6所述的一种多实例的token共享与维护的系统,其特征在于,所述集群内时效小于服务时效,在集群重启时,存储在共享内存和数据库中的token仍然有效,因此统一使用数据库存储的token完成加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510475704.9A CN105141589B (zh) | 2015-08-05 | 2015-08-05 | 一种多实例的token共享与维护的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510475704.9A CN105141589B (zh) | 2015-08-05 | 2015-08-05 | 一种多实例的token共享与维护的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105141589A CN105141589A (zh) | 2015-12-09 |
CN105141589B true CN105141589B (zh) | 2018-06-22 |
Family
ID=54726797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510475704.9A Active CN105141589B (zh) | 2015-08-05 | 2015-08-05 | 一种多实例的token共享与维护的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105141589B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737477B (zh) * | 2017-04-21 | 2021-11-12 | 杭州海康威视数字技术股份有限公司 | 云存储系统、媒体数据均衡存储方法及系统 |
CN108924149B (zh) * | 2018-07-19 | 2021-06-18 | 郑州云海信息技术有限公司 | 一种基于Token令牌的身份合法性验证方法及系统 |
CN110719285A (zh) * | 2019-10-11 | 2020-01-21 | 永诚恒易网络科技股份有限公司 | 一种基于http协议的token的封装方法 |
CN112685709B (zh) * | 2021-01-13 | 2024-02-23 | 树根互联股份有限公司 | 一种授权令牌管理方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090106332A (ko) * | 2008-04-04 | 2009-10-08 | 삼성전자주식회사 | 휴대 방송 서비스 수신을 위한 토큰 사용 방법 |
CN103581202A (zh) * | 2013-11-19 | 2014-02-12 | 上海众人网络安全技术有限公司 | 基于身份认证平台的商户令牌交叉认证方法 |
CN104620250A (zh) * | 2012-07-20 | 2015-05-13 | 谷歌公司 | 在两个装置之间使用临时私钥的系统和方法 |
CN104811375A (zh) * | 2015-05-08 | 2015-07-29 | 三星电子(中国)研发中心 | 智能家居网关及其组网方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9021601B2 (en) * | 2009-10-23 | 2015-04-28 | Vasco Data Security, Inc. | Strong authentication token usable with a plurality of independent application providers |
-
2015
- 2015-08-05 CN CN201510475704.9A patent/CN105141589B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090106332A (ko) * | 2008-04-04 | 2009-10-08 | 삼성전자주식회사 | 휴대 방송 서비스 수신을 위한 토큰 사용 방법 |
CN104620250A (zh) * | 2012-07-20 | 2015-05-13 | 谷歌公司 | 在两个装置之间使用临时私钥的系统和方法 |
CN103581202A (zh) * | 2013-11-19 | 2014-02-12 | 上海众人网络安全技术有限公司 | 基于身份认证平台的商户令牌交叉认证方法 |
CN104811375A (zh) * | 2015-05-08 | 2015-07-29 | 三星电子(中国)研发中心 | 智能家居网关及其组网方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105141589A (zh) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108494703A (zh) | 一种访问频率控制方法、装置及存储介质 | |
CN109831500B (zh) | Kubernetes集群中配置文件与Pod的同步方法 | |
CN101593134B (zh) | 虚拟机cpu资源分配方法和装置 | |
CN103559072B (zh) | 虚拟机双向自动伸缩服务实现方法及其系统 | |
CN105141589B (zh) | 一种多实例的token共享与维护的方法及系统 | |
CN104463492B (zh) | 一种电力系统云仿真平台的运营管理方法 | |
CN103297456B (zh) | 一种分布式系统下共享资源的访问方法及分布式系统 | |
EP3547634B1 (en) | Method and apparatus for determining access permission, and terminal | |
CN102843387B (zh) | 一种基于安全分级的云计算安全控制平台 | |
JP5327220B2 (ja) | 管理プログラム、管理装置および管理方法 | |
CN105094997B (zh) | 一种云计算主机节点间物理内存共享方法和系统 | |
CN110661842B (zh) | 一种资源的调度管理方法、电子设备和存储介质 | |
CN110851278A (zh) | 一种基于微服务架构的配网自动化主站移动应用服务管理方法和系统 | |
CN104679594B (zh) | 一种中间件分布式计算方法 | |
CN108667748A (zh) | 一种控制带宽的方法、装置和设备 | |
CN106790636A (zh) | 一种云计算服务器集群的均衡负载系统及方法 | |
CN106713375A (zh) | 云资源的调配方法及装置 | |
CN110868435B (zh) | 一种裸金属服务器调度方法、装置及存储介质 | |
CN110086726A (zh) | 一种自动切换Kubernetes主节点的方法 | |
CN111708629B (zh) | 一种资源分配方法、装置、电子设备和存储介质 | |
CN106603696A (zh) | 一种基于超融合基础框架的高可用系统 | |
CN107967175A (zh) | 一种基于多目标优化的资源调度系统及方法 | |
CN104363306A (zh) | 一种企业私有云管理控制方法 | |
CN104410511A (zh) | 一种服务器管理方法及系统 | |
CN106529230A (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 |