CN106686012B - 一种单点登出方法及装置 - Google Patents
一种单点登出方法及装置 Download PDFInfo
- Publication number
- CN106686012B CN106686012B CN201710142151.4A CN201710142151A CN106686012B CN 106686012 B CN106686012 B CN 106686012B CN 201710142151 A CN201710142151 A CN 201710142151A CN 106686012 B CN106686012 B CN 106686012B
- Authority
- CN
- China
- Prior art keywords
- script
- publishes
- publish
- child servers
- published
- 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/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
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 Transfer Between Computers (AREA)
Abstract
本申请提供一种应用于客户端的单点登出方法,包括:接收用户输入的请求登出的操作;根据该操作,向CAS server发送登出请求,以使得CAS server基于该登出请求调用登出页面,该登出页面中包含第一登出脚本以及第二登出脚本,第一登出脚本用于指示分别通知子服务器注销用户会话信息存储,第二登出脚本用于指示CAS server登出;基于该登出页面,指示分别断开CAS server与子服务器之间的单点登录映射关系,并指示CAS server注销用户的用户凭证。采用该方法,客户端通知子服务器注销用户会话信息存储、指示CAS server注销用户的用户凭证,改进登出过程的信息流,减少服务器间的通信负载,由于该子服务器无需注册全局Filter和也无需维护Map,降低了单点登出时子服务器的实现成本。
Description
技术领域
本发明涉及互联网应用领域,更具体的说,是涉及一种单点登出方法及装置。
背景技术
SSO(Single Sign On,单点登录)是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
作为单点登录的反向操作,单点登出在多个应用系统中,用户只需登出一次就可实现所有系统的登出。
现有技术中,单点登出过程如下:客户端向CAS(Center Authenticate Service,中心认证服务)server(服务器)发出登出请求;CAS server完成登出操作;CAS Server通知客户端完成登出;CAS Server通知子服务器用户凭证无效;子服务器销毁用户凭证。
但是,采用该方法,需要子服务器注册一个全局filter(过滤器),以实现监听该CAS Server发送的用户凭证无效的通知,并且该子服务器需要维护一个全局map(地图),用于记录用户凭证与用户session(会话)之间的对应关系,以实现在接收到该用户凭证无效通知时,注销该用户对象的session,导致单点登出时子服务器的实现成本较高。
发明内容
有鉴于此,本申请提供了一种单点登出方法及装置,解决了现有技术中单点登出时子服务器的实现成本较高的问题。
为实现上述目的,本申请提供如下技术方案:
一种单点登出方法,所述方法应用于客户端,包括:
接收用户输入的请求登出的操作;
根据所述操作,向中心认证服务服务器CAS server发送登出请求,以使得所述CASserver基于所述登出请求调用预设登出页面;
接收所述预设登出页面,所述登出页面中包含第一登出脚本以及第二登出脚本,所述第一登出脚本用于指示与所述CAS server建立单点登录映射关系的子服务器登出,且所述第一登出脚本的数量与所述子服务器的数量相同,所述第二登出脚本用于指示CASserver完成登出;
基于所述登出页面,通知所述子服务器注销用户会话信息存储,并指示所述CASserver注销用户的用户凭证。
上述的方法,优选的,所述基于所述登出页面,通知所述子服务器注销用户会话信息存储,并指示所述CAS server注销用户的用户凭证,包括:
基于所述登出页面的第一登出脚本,分别通知至少两个所述子服务器注销用户会话信息存储;
基于所述登出页面的第二登出脚本,指示所述CAS server注销用户的用户凭证。
上述的方法,优选的,所述基于所述登出页面的第一登出脚本,通知所述子服务器注销用户会话信息存储,包括:
加载所述登出页面,得到所述第一登出脚本;
当读取得到一个第一登出脚本时,基于所述第一登出脚本向所述第一登出脚本对应的子服务器发送登出注销请求,以使得所述子服务器根据所述登出注销请求注销所述用户的会话信息存储。
上述的方法,优选的,还包括:
接收所述子服务器的反馈信息,所述反馈信息包含登出成功信息或者登出失败信息,所述登出成功信息表征所述子服务器成功注销所述用户的会话,所述登出失败信息表征所述子服务器未成功注销所述用户的会话。
上述的方法,优选的,所述基于所述登出页面的第二登出脚本,指示所述CASserver注销用户的用户凭证,包括:
基于所述子服务器的反馈信息未包含登出失败信息,基于所述第二登出脚本,生成注销请求至所述CAS server,以使得所述CAS server基于所述注销请求注销所述用户的用户凭证。
上述的方法,优选的,还包括:
基于所述子服务器的反馈信息包含登出失败信息,停止执行第二登出脚本。
上述的方法,优选的,所述子服务器中包含有至少两个网络容器,则所述基于所述第一登出脚本向所述第一登出脚本对应的子服务器发送登出注销请求,包括:
依据所述第一登出脚本生成登出注销请求,所述登出注销请求中包含客户端会话的标志;
发送所述登出注销请求至与所述第一登出脚本对应的子服务器,以使得所述子服务器在所述至少两个网络容器中查找与客户端会话的标志对应的目标网络容器,将所述登出注销请求传输至所述目标网络容器。
一种单点登出装置,包括:
操作接收模块,用于接收用户输入的请求登出的操作;
登出请求模块,用于根据所述操作,向CAS server发送登出请求,以使得所述CASserver基于所述登出请求调用预设登出页面;
页面接收模块,用于接收所述预设登出页面,所述登出页面中包含第一登出脚本以及第二登出脚本,所述第一登出脚本用于指示与所述CAS server建立单点登录映射关系的子服务器登出,且所述第一登出脚本的数量与所述子服务器的数量相同,所述第二登出脚本用于指示CAS server完成登出;
登出指示模块,用于基于所述登出页面,通知所述子服务器注销用户会话信息存储,并指示所述CAS server注销用户的用户凭证。
上述的装置,优选的,所述登出指示模块,包括:
第一指示单元,用于基于所述登出页面的第一登出脚本,通知所述子服务器注销用户会话信息存储;
第二指示单元,用于基于所述登出页面的第二登出脚本,指示所述CAS server注销用户的用户凭证。
上述的装置,优选的,所述第一指示单元,包括:
加载子单元,用于加载所述登出页面,得到所述第一登出脚本;
注销子单元,用于当读取得到一个第一登出脚本时,基于所述第一登出脚本向所述第一登出脚本对应的子服务器发送登出注销请求,以使得所述子服务器根据所述登出注销请求注销所述用户的会话信息存储。
经由上述的技术方案可知,与现有技术相比,本申请提供了一种单点登出方法,应用于客户端,该方法包括:接收用户输入的请求登出的操作;根据所述操作,向CAS server发送登出请求,以使得所述CAS server基于所述登出请求调用预设登出页面;接收所述预设登出页面,所述登出页面中包含第一登出脚本以及第二登出脚本,所述第一登出脚本用于指示与所述CAS server建立单点登录映射关系的子服务器登出,所述第二登出脚本用于指示CAS server完成登出;基于所述登出页面,指示分别注销子服务器中的用户会话存储,并指示所述CAS server注销用户的用户凭证。采用该方法,由客户端通知子服务器注销用户会话信息存储、指示CAS server注销用户的用户凭证,改进了登出过程的信息流,减少了服务器间的通信负载,并且,由于该子服务器无需注册全局Filter和也无需维护Map,降低了单点登出时子服务器的实现成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请中提供的单点登入登出的系统;
图2为本申请提供的一种单点登出方法实施例1的流程图;
图3为本申请提供的一种单点登出方法实施例1中登出页面的示意图;
图4为本申请提供的一种单点登出方法实施例2的流程图;
图5为本申请提供的一种单点登出方法实施例3的流程图;
图6为本申请提供的一种单点登出方法实施例4的流程图;
图7为本申请提供的一种单点登出方法实施例5的流程图;
图8为本申请提供的一种单点登出装置实施例1的结构示意图;
图9为本申请提供的一种单点登出装置实施例2的结构示意图;
图10为本申请提供的一种单点登出装置实施例3的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,需要说明的是,CAS是一个开源的单点认证中心服务,拥有一个友好的开源社区,积极支持和贡献项目。且,该CAS是J2EE(Java 2 Platform,Enterprise Edition,Java2平台企业版)上流行的单点认证中心服务。
如图1所示的为本申请中提供的单点登入登出的系统,包括客户端101、CASserver102以及多个子服务器103,用户通过使用该客户端101输入单点登入或者单点登出的操作,该CAS server102基于该操作实现与子服务器之间建立单点登录映射关系或者解除该单点登录映射关系等,该子服务器103用于与该客户端建立用户会话(session)。
如图2所示的为本申请提供的一种单点登出方法实施例1的流程图,该方法应用于客户端,该方法包括以下步骤:
步骤S201:接收用户输入的请求登出的操作;
其中,该客户端中设置有输入设备,如键盘、鼠标、触摸板等。
则,用户通过该输入设备输入请求登出的操作,如通过键盘输入登出指令等。
具体实施中,该客户端中还可以设置显示屏幕,用户根据显示屏幕中的显示内容,通过输入设备输入请求登出的操作。例如,通过鼠标在显示屏幕中选择登出按键。
具体的,该客户端通过该输入设备接收用户输入的请求登出的操作。
步骤S202:根据所述操作,向CAS server发送登出请求,以使得所述CAS server基于所述登出请求调用预设登出页面;
其中,接收到该操作后,基于该操作生成一登出请求,并将该登出请求发送给CASserver,以通知该CAS server开始登出。
具体实施中,该客户端通过浏览器向CAS server发送该登出请求。
而该CAS server接收到该登出请求后,调用一预设登出页面,该登出页面中包含第一登出脚本以及第二登出脚本,所述第一登出脚本用于指示与所述CAS server建立单点登录映射关系的子服务器登出,所述第二登出脚本用于指示CAS server完成登出。
需要说明的是,该登出页面中包含的第一登出脚本的个数,与所述CAS server建立单点登录映射关系的子服务器的个数相同,即该子服务器与该第一登出脚本一一对应。
具体实施中,该CAS server中预先设置登出页面,具体包括:创建登出页面,在所述登出页面中依次为每个子服务器生成对应的第一登出脚本、为所述CAS server生成第二登出脚本。
需要说明的是,具体实施中,在实际工作中,有的时候子服务器是逐渐的一个一个的上线的,此时会出现子服务器是0个或1个的情况,这种情况下改变登录方式会有运维和开发成本,应该继续使用单点登录和单点登出,以方便后续子服务器的系统集成。而此时的单点登出时,该登出页面中相应的不包含第一登出脚本或者包含一个第一登出脚本。
步骤S203:接收预设登出页面;
其中,所述登出页面中包含第一登出脚本以及第二登出脚本,所述第一登出脚本用于指示与所述CAS server建立单点登录映射关系的子服务器登出,且所述第一登出脚本的数量与所述子服务器的数量相同,所述第二登出脚本用于指示CAS server完成登出。
步骤S204:基于所述登出页面,通知所述子服务器注销用户会话信息存储,并指示所述CAS server注销用户的用户凭证。
其中,接收到该登出页面后,客户端加载该登出页面,得到该登出页面中的第一登出脚本和第二登出脚本,以实现基于该第一登出脚本和第二登出脚本通知所述子服务器注销用户会话信息存储,并指示所述CAS server注销用户的用户凭证,完成单点登出的过程。
需要说明的是,该子服务器注销用户会话信息存储,即可实现断开CAS server与所述子服务器之间基于该用户会话的单点登录映射关系。
图3所示的为本实施例中提供的登出页面的示意图,其中该登出页面301包含选择区域302和提示区域303,图中用虚线框出该选择区域和提示区域,该选择区域302中包含选项“确认”和“放弃”,该提示区域303中提示本次单点登出涉及的会话,如会话1、会话2、……会话n-1、会话n等,该会话对应的子服务器与该CAS server建立单点登录映射关系。每一会话对应一第一登出脚本,且该登出页面中还包含第二登出脚本。其中,当用户选择“确认”时,根据该第一登出脚本实现指示与该CAS server建立单点登录映射关系的子服务器登出,并且,依据该第二登出脚本指示CAS server完成登出。
具体实施中,该登出页面生成显示内容时,也可以仅是进行展示本次单点登出涉及的会话,无需要用户再次确定是否确定单点登出。
需要说明的是,具体过程在后续实施例中会做详细说明,本实施例中不做详述。
综上,本实施例提供的一种应用于客户端的单点登出方法,包括:接收用户输入的请求登出的操作;根据所述操作,向中心认证服务服务器CAS server发送登出请求,以使得所述CAS server基于所述登出请求调用预设登出页面;接收所述预设登出页面,所述登出页面中包含第一登出脚本以及第二登出脚本,所述第一登出脚本用于指示与所述CASserver建立单点登录映射关系的子服务器登出,所述第二登出脚本用于指示CAS server完成登出;基于所述登出页面,通知所述子服务器注销用户会话信息存储,并指示所述CASserver注销用户的用户凭证。采用该方法,由客户端实现通知所述子服务器注销用户会话信息存储,并指示所述CAS server注销用户的用户凭证,改进了登出过程的信息流,减少了服务器间的通信负载,并且,由于该子服务器无需注册全局Filter和也无需维护Map,降低了单点登出时子服务器的实现成本。
如图4所示的为本申请提供的一种单点登出方法实施例2的流程图,该方法包括以下步骤:
步骤S401:接收用户输入的请求登出的操作;
步骤S402:根据所述操作,向CAS server发送登出请求,以使得所述CAS server基于所述登出请求调用预设登出页面;
步骤S403:接收所述预设登出页面;
其中,步骤S401-403与实施例1中的步骤S201-203一致,本实施例中不做赘述。
步骤S404:基于所述登出页面的第一登出脚本,通知所述子服务器注销用户会话信息存储;
其中,加载该登出页面,得到该登出页面中的第一登出脚本以及该第二登出脚本。
相应的,基于该第一登出脚本,该子服务器注销用户会话信息存储,即可实现该断开CAS server与所述子服务器之间基于该用户会话的单点登录映射关系,而断开该单点登录映射关系,使得该子服务器不再进行单点登录。
步骤S405:基于所述登出页面的第二登出脚本,指示所述CAS server注销用户的用户凭证。
相应的,根据该第二登出脚本,指示该CAS server注销用户的用户凭证,而注销了用户凭证使得该CAS server中无该用户的相关信息,则无法基于该CAS server实现对多个相互信任的应用系统(子服务器的系统)的单点登录。
具体实施中,该登出页面是一种HTML(Hyper Text Markup Language,超文本标记语言)页面,该登出页面中的登出脚本即为一个<script>元素,由于HTML页面加载时会按照元素出现先后顺序进行加载,遇到<script>元素时,会先加载并执行<script>元素,完成后再继续加载后续。而在该登出页面中第一登出脚本排序靠前,该第二登出脚本的排序靠后,所以,在加载该登出页面时,客户端的浏览器会先执行子服务器的第一登出脚本,后执行CAS Server的第二登出脚本。
综上,本实施例提供的一种应用于客户端的单点登出方法中,该基于所述登出页面,通知所述子服务器注销用户会话信息存储,并指示所述CAS server注销用户的用户凭证,包括:基于所述登出页面的第一登出脚本,分别通知子服务器注销用户会话信息存储通知子服务器注销用户会话信息存储;基于所述登出页面的第二登出脚本,指示所述CASserver注销用户的用户凭证。采用该方法,依次分别通知子服务器注销用户会话信息存储,并且指示该CAS server注销用户的用户凭证,实现完成该单点登出。
具体实施中,当该子服务器为至少一个时,则该登出页面中包含至少一个第一登出脚本。
如图5所示的为本申请提供的一种单点登出方法实施例3的流程图,该方法包括以下步骤:
步骤S501:接收用户输入的请求登出的操作;
步骤S502:根据所述操作,向中心认证服务服务器CAS server发送登出请求,以使得所述CAS server基于所述登出请求调用预设登出页面;
步骤S503:接收所述预设登出页面;
其中,步骤S501-503与实施例2中的步骤S401-403一致,本实施例中不做赘述。
步骤S504:加载所述登出页面,得到所述第一登出脚本;
其中,该登出页面是一种HTML(HyperText Transfer Protocol,超文本传输协议)页面,而该登出页面中的登出脚本即为一个<script>元素,相应的,加载该登出页面时,能够依次得到该登出页面中包含的第一登出脚本和第二登出脚本。
具体的,在该HTML程序中,各个登出脚本依次排列,则加载该页面时就能够依次读取到该各个第一登出脚本。
步骤S505:当读取得到一个第一登出脚本时,基于所述第一登出脚本向所述第一登出脚本对应的子服务器发送登出注销请求,以使得所述子服务器根据所述登出注销请求注销所述用户的会话信息存储;
具体的,当读取到第一登出脚本时,依据该其对应的子服务器发送一个登出注销请求,而该子服务器在接收到该登出注销请求时,则注销该客户端对应的用户的会话信息存储。
需要说明的是,由于该登出页面是一种HTML页面,且该登出页面中的登出脚本即为一个<script>元素,相应的,在加载该登出页面时,客户端的浏览器会依次加载得到该多个第一登出脚本,并且,在得到一个第一登出脚本后,就向该第一脚本对应的子服务器发送登出注销请求;完成后,继续加载得到另一个第一登出脚本直至全部的第一登出脚本时,继续加载得到该第二登出脚本。
步骤S506:基于所述登出页面的第二登出脚本,指示所述CAS server注销用户的用户凭证。
其中,步骤S506与实施例2中的步骤S405一致,本实施例中不做赘述。
综上,本实施例提供的一种应用于客户端的单点登出方法中,该基于所述登出页面的第一登出脚本,通知所述子服务器注销用户会话信息存储,包括:加载所述登出页面,依次得到所述第一登出脚本;当读取得到一个第一登出脚本时,基于所述第一登出脚本向所述第一登出脚本对应的子服务器发送登出注销请求,以使得所述子服务器根据所述登出注销请求注销所述用户的会话信息存储。采用该方法,加载登出页面得到一个第一登出脚本时,向对应的子服务器发送登出注销请求,该子服务器通过注销该用户的会话信息存储,以实现断开该子服务器与该CAS server之间的单点登录映射关系。
如图6所示的为本申请提供的一种单点登出方法实施例4的流程图,该方法包括以下步骤:
步骤S601:接收用户输入的请求登出的操作;
步骤S602:根据所述操作,向中心认证服务服务器CAS server发送登出请求,以使得所述CAS server基于所述登出请求调用预设登出页面;
步骤S603:接收所述预设登出页面;
步骤S604:加载所述登出页面,得到所述第一登出脚本;
步骤S605:当读取得到一个第一登出脚本时,基于所述第一登出脚本向所述第一登出脚本对应的子服务器发送登出注销请求,以使得所述子服务器根据所述登出注销请求注销所述用户的会话信息存储;
其中,步骤S601-603与实施例3中的步骤S501-505一致,本实施例中不做赘述。
步骤S606:接收所述子服务器的反馈信息;
具体实施中,该子服务器注销该用户会话后,会发送一个反馈信息给客户端,以通知客户端该注销情况。
其中,所述反馈信息包含登出成功信息或者登出失败信息,所述登出成功信息表征所述子服务器成功注销所述用户的会话,所述登出失败信息表征所述子服务器未成功注销所述用户的会话。
其中,该反馈信息包含登出失败信息时,该反馈信息具体可以采用“var fail=true;”表示,即通过设置一个全局变量表明该登出失败。
步骤S607:基于所述子服务器的反馈信息未包含登出失败信息,基于所述第二登出脚本,生成注销请求至所述CAS server,以使得所述CAS server基于所述注销请求注销所述用户的用户凭证。
具体实施中,当该子服务器成功注销用户的会话时,该子服务器接收到该成功注销的反馈信息时,继续加载该登出页面中的内容,如其他第一登出脚本或者第二登出脚本,直至加载完该登出页面。当各个子服务器的反馈信息均是成功注销用户的会话时,则继续加载该登出页面中的第二登出脚本,执行步骤S607,指示该CAS server注销用户的用户凭证,完成单点登出。
而当接收到的反馈信息中有登出失败信息时,则表明发送该反馈信息的子服务器中未能成功注销用户的会话,而如果继续指示CAS server注销该用户的用户凭证,会导致子系统登出失败时,CAS Server依然完成了客户登出,造成系统不一致,事务性登出失败。
所以,该方法还包括:基于所述子服务器的反馈信息包含登出失败信息,停止执行第二登出脚本。
需要说明的是,采用本实施例中的方案,当发生子服务器未能成功注销用户的会话时,由于用户未从CAS Server登出,则对于已经成功登出的子系统,客户仍可通过单点认证机制登入,保证了登出操作的事务性。
具体实施中,该客户端加载该登出页面,每读取到一个第一登出脚本时,就生成相应的登出注销请求,且暂停加载该登出页面,并在得到相应的子服务器返回的反馈信息后,继续加载该登出页面,则相应的,一旦接收到包含登出失败信息的反馈信息时,就停止加载该登出页面,即停止单点登出的过程。
综上,本实施例提供的一种应用于客户端的单点登出方法,还包括:接收所述子服务器的反馈信息,所述反馈信息包含登出成功信息或者登出失败信息,所述登出成功信息表征所述子服务器成功注销所述用户的会话,所述登出失败信息表征所述子服务器未成功注销所述用户的会话,基于所述子服务器的反馈信息未包含登出失败信息,基于所述第二登出脚本,生成注销请求至所述CAS server,以使得所述CAS server基于所述注销请求注销所述用户的用户凭证。采用该方法,当确定所有的子服务器均成功注销用户的会话后,才指示该CAS server注销该用户的用户凭证,防止出现系统不一致,导致的事务性登出失败问题。
其中,该子服务器中包含有至少两个网络容器时,该与第一登出脚本对应的用户会话在其中一个网络容器中。
如图7所示的为本申请提供的一种单点登出方法实施例5的流程图,该方法包括以下步骤:
步骤S701:接收用户输入的请求登出的操作;
步骤S702:根据所述操作,向CAS server发送登出请求,以使得所述CAS server基于所述登出请求调用预设登出页面;
步骤S703:接收所述预设登出页面;
步骤S704:加载所述登出页面,得到所述第一登出脚本;
其中,步骤S701-704与实施例3中的步骤S501-504一致,本实施例中不做赘述。
步骤S705:当读取得到一个第一登出脚本时,依据所述第一登出脚本生成登出注销请求;
需要说明的是,该网络(web)容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可有多个容器。容器是一种服务调用规范框架,J2EE大量运用了容器和组件技术来构建分层的企业级应用。在J2EE规范中,相应的有WEB Container和EJB Container等。
web容器给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接跟容器中的环境变量交互,不必关注其它系统问题(从这个角度来说,web容器应该属于架构上的概念)。web容器主要由web服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。
若web容器提供的接口严格遵守J2EE规范中的WEB APPLICATION标准。我们把该容器叫做J2EE中的WEB容器。
具体实现中,该web容器更多的是跟基于HTTP的请求打交道。
web容器的行为是将其内部的应用程序组件与外界的通信协议交互进行了隔离,从而减轻内部应用程序组件的负担(如实现方面的负担)。例如,SERVLET不用关心HTTP的细节,而是直接引用环境变量session、request、response就行、各种事务控制,直接由容器来完成。
其中,所述登出注销请求中包含客户端会话的标志。
首先,需要说明的是,子服务器在负载均衡环境下,即子服务器有多个网络容器,如果采用粘性会话策略,相同会话的网络请求会交给相同的网络容器处理。
其中,该粘性会话策略是指,该某一特定的会话仅能够被子服务器中的某一特定的网络容器进行处理。
因此,为保证与该第一登出脚本对应的登出注销请求能够发送至相应的网络容器,则在生成登出注销请求时,在该登出注销请求中添加该客户端的标志。
步骤S706:发送所述登出注销请求至与所述第一登出脚本对应的子服务器,以使得所述子服务器在所述至少两个网络容器中查找与客户端会话的标志对应的目标网络容器,将所述登出注销请求传输至所述目标网络容器,注销所述用户的会话;
其中,该客户端生成登出注销请求后,将其发送给该第一登出脚本对应的子服务器。
而该子服务器接收到该登出注销请求后,根据该登出注销请求中包含的客户端会话的标志,进而根据该标志从多个网络容器中查找对应的网络容器,并将该登出注销请求传输给该对应的目标网络容器,以实现该目标网络容器中注销该用户的会话,最终实现在该子服务器中注销该用户的会话。
步骤S707:基于所述登出页面的第二登出脚本,指示所述CAS server注销用户的用户凭证。
其中,步骤S707与实施例3中的步骤S506一致,本实施例中不做赘述。
综上,本实施例提供的一种应用于客户端的单点登出方法,包括:依据所述第一登出脚本生成登出注销请求,所述登出注销请求中包含客户端会话的标志;发送所述登出注销请求至与所述第一登出脚本对应的子服务器,以使得所述子服务器在所述至少两个网络容器中查找与客户端会话的标志对应的目标网络容器,将所述登出注销请求传输至所述目标网络容器。采用该方法,能够在子服务器的多个网络容器中确定与客户端会话的标志对应的目标网络容器,进而成功注销该用户的会话,防止出现CAS Server的登出注销请求随便发送给该子服务器中任一网络容器,而对应的用户会话可能存储在不同的网络容器上,导致用户会话注销失败的问题。
上述本发明提供的实施例中详细描述了一种单点登出方法,对于本发明的单点登出方法可采用多种形式的装置实现,因此本发明还提供了一种单点登出装置,下面给出具体的实施例进行详细说明。
如图8所示的为本申请提供的一种单点登出装置实施例1的结构示意图,该装置应用于客户端,该装置包括以下结构:操作接收模块801、登出请求模块802、页面接收模块803以及登出指示模块804;
其中,该操作接收模块801,用于接收用户输入的请求登出的操作;
其中,该登出请求模块802,用于根据所述操作,向CAS server发送登出请求,以使得所述CAS server基于所述登出请求调用预设登出页面;
其中,该页面接收模块803,用于接收所述预设登出页面,所述登出页面中包含第一登出脚本以及第二登出脚本,所述第一登出脚本用于指示与所述CAS server建立单点登录映射关系的子服务器登出,而该第一登出脚本的数量与该子服务器的数量相同,所述第二登出脚本用于指示CAS server完成登出;
其中,该登出指示模块804,用于基于所述登出页面,通知所述子服务器注销用户会话信息存储,并指示所述CAS server注销用户的用户凭证。
综上,本实施例提供的一种应用于客户端的单点登出装置中,由客户端实现通知所述子服务器注销用户会话信息存储,并指示所述CAS server注销用户的用户凭证,改进了登出过程的信息流,减少了服务器间的通信负载,并且,由于该子服务器无需注册全局Filter和也无需维护Map,降低了单点登出时子服务器的实现成本。
如图9所示的为本申请提供的一种单点登出装置实施例2的结构示意图,该装置应用于客户端,该装置包括以下结构:操作接收模块901、登出请求模块902、页面接收模块903以及登出指示模块904;
其中,该登出指示模块904包括:第一指示单元905和第二指示单元906;
其中,该操作接收模块901、登出请求模块902、页面接收模块903的结构功能与实施例1中的相应结构功能一致,本实施例中不做赘述。
其中,该第一指示单元905,用于基于所述登出页面的第一登出脚本,分别断开所述CAS server与所述子服务器之间的单点登录映射关系;
其中,该第二指示单元906,用于基于所述登出页面的第二登出脚本,指示所述CASserver注销用户的用户凭证。
综上,本实施例提供的一种应用于客户端的单点登出装置中,依次分别通知所述子服务器注销用户会话信息存储,并且指示该CAS server注销用户的用户凭证,实现完成该单点登出。
如图10所示的为本申请提供的一种单点登出装置实施例3中第一指示单元的结构示意图,该装置应用于客户端,该装置包括以下结构:操作接收模块、登出请求模块、页面接收模块以及登出指示模块;
其中,该登出指示模块包括:第一指示单元和第二指示单元;
其中,该第一指示单元包括加载子单元1001和注销子单元1002;
其中,该操作接收模块、登出请求模块、页面接收模块、第二指示单元的结构功能与实施例2中的相应结构功能一致,本实施例中不做赘述。
其中,该加载子单元1001,用于加载所述登出页面,得到所述第一登出脚本;
其中,该注销子单元1002,用于当读取得到一个第一登出脚本时,基于所述第一登出脚本向所述第一登出脚本对应的子服务器发送登出注销请求,以使得所述子服务器根据所述登出注销请求注销所述用户的会话信息存储。
优选的,还包括:
反馈信息接收模块,用于接收所述子服务器的反馈信息,所述反馈信息包含登出成功信息或者登出失败信息,所述登出成功信息表征所述子服务器成功注销所述用户的会话,所述登出失败信息表征所述子服务器未成功注销所述用户的会话。
优选的,所述第二指示单元,用于基于所述子服务器的反馈信息未包含登出失败信息,基于所述第二登出脚本,生成注销请求至所述CAS server,以使得所述CAS server基于所述注销请求注销所述用户的用户凭证。
优选的,所述第二指示单元,还用于基于所述子服务器的反馈信息包含登出失败信息,停止执行第二登出脚本。
优选的,所述子服务器中包含有至少两个网络容器,则所述第一指示单元,包括:
请求生成子单元,用于依据所述第一登出脚本生成登出注销请求,所述登出注销请求中包含客户端会话的标志;
发送子单元,用于发送所述登出注销请求至与所述第一登出脚本对应的子服务器,以使得所述子服务器在所述至少两个网络容器中查找与客户端会话的标志对应的目标网络容器,将所述登出注销请求传输至所述目标网络容器。
综上,本实施例提供的一种应用于客户端的单点登出装置中,加载登出页面得到一个第一登出脚本时,向对应的子服务器发送登出注销请求,该子服务器通过注销该用户的会话,以实现断开该子服务器与该CAS server之间的单点登录映射关系。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所提供的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所提供的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种单点登出方法,其特征在于,所述方法应用于客户端,包括:
接收用户输入的请求登出的操作;
根据所述操作,向中心认证服务服务器CAS server发送登出请求,以使得所述CASserver基于所述登出请求调用预设登出页面;
接收所述预设登出页面,所述登出页面中包含第一登出脚本以及第二登出脚本,所述第一登出脚本用于指示与所述CAS server建立单点登录映射关系的子服务器登出,且所述第一登出脚本的数量与所述子服务器的数量相同,所述第二登出脚本用于指示CAS server完成登出;
基于所述登出页面,通知所述子服务器注销用户会话信息存储,以实现断开CASserver与所述子服务器之间基于该用户会话的单点登录映射关系,并指示所述CAS server注销用户的用户凭证。
2.根据权利要求1所述的方法,其特征在于,所述基于所述登出页面,通知所述子服务器注销用户会话信息存储,并指示所述CAS server注销用户的用户凭证,包括:
基于所述登出页面的第一登出脚本,分别通知所述子服务器注销用户会话信息存储;
基于所述登出页面的第二登出脚本,指示所述CAS server注销用户的用户凭证。
3.根据权利要求2所述的方法,其特征在于,所述第一登出脚本至少为一个时,所述基于所述登出页面的第一登出脚本,通知所述子服务器注销用户会话信息存储,包括:
加载所述登出页面,依次得到所述第一登出脚本;
当读取得到一个第一登出脚本时,基于所述第一登出脚本向所述第一登出脚本对应的子服务器发送登出注销请求,以使得所述子服务器根据所述登出注销请求注销所述用户的会话信息存储。
4.根据权利要求3所述的方法,其特征在于,还包括:
接收所述子服务器的反馈信息,所述反馈信息包含登出成功信息或者登出失败信息,所述登出成功信息表征所述子服务器成功注销所述用户的会话,所述登出失败信息表征所述子服务器未成功注销所述用户的会话。
5.根据权利要求4所述的方法,其特征在于,所述基于所述登出页面的第二登出脚本,指示所述CAS server注销用户的用户凭证,包括:
基于所述子服务器的反馈信息未包含登出失败信息,基于所述第二登出脚本,生成注销请求至所述CAS server,以使得所述CAS server基于所述注销请求注销所述用户的用户凭证。
6.根据权利要求4所述的方法,其特征在于,还包括:
基于所述子服务器的反馈信息包含登出失败信息,停止执行第二登出脚本。
7.根据权利要求3所述的方法,其特征在于,所述子服务器中包含有至少两个网络容器,则所述基于所述第一登出脚本向所述第一登出脚本对应的子服务器发送登出注销请求,包括:
依据所述第一登出脚本生成登出注销请求,所述登出注销请求中包含客户端会话的标志;
发送所述登出注销请求至与所述第一登出脚本对应的子服务器,以使得所述子服务器在所述至少两个网络容器中查找与客户端会话的标志对应的目标网络容器,将所述登出注销请求传输至所述目标网络容器。
8.一种单点登出装置,其特征在于,包括:
操作接收模块,用于接收用户输入的请求登出的操作;
登出请求模块,用于根据所述操作,向CAS server发送登出请求,以使得所述CASserver基于所述登出请求调用预设登出页面;
页面接收模块,用于接收所述预设登出页面,所述登出页面中包含第一登出脚本以及第二登出脚本,所述第一登出脚本用于指示与所述CAS server建立单点登录映射关系的子服务器登出,且所述第一登出脚本的数量与所述子服务器的数量相同,所述第二登出脚本用于指示CAS server完成登出;
登出指示模块,用于基于所述登出页面,通知所述子服务器注销用户会话信息存储,以实现断开CAS server与所述子服务器之间基于该用户会话的单点登录映射关系,并指示所述CAS server注销用户的用户凭证。
9.根据权利要求8所述的装置,其特征在于,所述登出指示模块,包括:
第一指示单元,用于基于所述登出页面的第一登出脚本,通知所述子服务器注销用户会话信息存储;
第二指示单元,用于基于所述登出页面的第二登出脚本,指示所述CAS server注销用户的用户凭证。
10.根据权利要求9所述的装置,其特征在于,所述第一登出脚本为至少一个时,所述第一指示单元,包括:
加载子单元,用于加载所述登出页面,依次得到所述第一登出脚本;
注销子单元,用于当读取得到一个第一登出脚本时,基于所述第一登出脚本向所述第一登出脚本对应的子服务器发送登出注销请求,以使得所述子服务器根据所述登出注销请求注销所述用户的会话信息存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710142151.4A CN106686012B (zh) | 2017-03-10 | 2017-03-10 | 一种单点登出方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710142151.4A CN106686012B (zh) | 2017-03-10 | 2017-03-10 | 一种单点登出方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106686012A CN106686012A (zh) | 2017-05-17 |
CN106686012B true CN106686012B (zh) | 2019-10-18 |
Family
ID=58828754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710142151.4A Active CN106686012B (zh) | 2017-03-10 | 2017-03-10 | 一种单点登出方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106686012B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11736292B2 (en) | 2017-10-23 | 2023-08-22 | Huawei Technologies Co., Ltd. | Access token management method, terminal, and server |
CN108134806B (zh) * | 2018-03-13 | 2021-02-12 | 北京信安世纪科技股份有限公司 | 一种单点登出的方法及系统 |
US11212272B2 (en) * | 2018-08-30 | 2021-12-28 | Microsoft Technology Licensing, Llc. | Secure password-based single sign-on |
CN110650122B (zh) * | 2019-09-04 | 2021-12-17 | 苏州浪潮智能科技有限公司 | 一种Web系统自动登出方法、装置及系统 |
CN110855640A (zh) * | 2019-10-30 | 2020-02-28 | 北京市天元网络技术股份有限公司 | 基于cas的登录凭证销毁方法以及装置 |
CN112104888B (zh) * | 2020-09-18 | 2022-07-05 | 北京一起教育信息咨询有限责任公司 | 一种直播用户分组的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104320423A (zh) * | 2014-11-19 | 2015-01-28 | 重庆邮电大学 | 基于Cookie的单点登录轻量级实现方法 |
CN105072123A (zh) * | 2015-08-21 | 2015-11-18 | 广州博鳌纵横网络科技有限公司 | 一种集群环境下的单点登陆退出方法及系统 |
CN105491048A (zh) * | 2015-12-10 | 2016-04-13 | 小米科技有限责任公司 | 账户管理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8763152B2 (en) * | 2009-07-23 | 2014-06-24 | Facebook Inc. | Single login procedure for accessing social network information across multiple external systems |
-
2017
- 2017-03-10 CN CN201710142151.4A patent/CN106686012B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104320423A (zh) * | 2014-11-19 | 2015-01-28 | 重庆邮电大学 | 基于Cookie的单点登录轻量级实现方法 |
CN105072123A (zh) * | 2015-08-21 | 2015-11-18 | 广州博鳌纵横网络科技有限公司 | 一种集群环境下的单点登陆退出方法及系统 |
CN105491048A (zh) * | 2015-12-10 | 2016-04-13 | 小米科技有限责任公司 | 账户管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106686012A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106686012B (zh) | 一种单点登出方法及装置 | |
US11258875B2 (en) | Integration framework and user interface for embedding transfer services into applications | |
US9210201B2 (en) | Cross social network data aggregation | |
US7277408B2 (en) | Shared application access for data services in wireless telecommunication systems | |
US10554697B1 (en) | Browser application selection and navigation operations in a co-browsing environment | |
CA2821373C (en) | Method of providing assistance to the end-user of a software application | |
US8347322B1 (en) | Social network application programming interface | |
US8037191B2 (en) | Low-level remote sharing of local devices in a remote access session across a computer network | |
US9923929B2 (en) | Systems and methods for in-session refresh of entitlements associated with web applications | |
US8072926B1 (en) | Systems and methods for device emulation on mobile channel | |
US10560492B1 (en) | Browser application selection and navigation operations in a co-browsing environment | |
US20110093790A1 (en) | Preemptive caching for web-based systems | |
CN103001926A (zh) | 一种订阅通知的方法、装置和系统 | |
CA2440835A1 (en) | Application synchronisation | |
CN101694660A (zh) | 即时网站系统以及网站与即时通讯平台结合的方法 | |
WO2014074964A1 (en) | Providing and procuring worksheet functions through an online marketplace | |
EP2652930A1 (en) | User interaction for web resources | |
US20140095974A1 (en) | Secure html javascript code snippet usage in application integration | |
EP1652112A1 (en) | System and method for configuring servlet-based components as dynamic content components | |
US20130297693A1 (en) | Online mobile and networking platform with user profile and group features | |
CN101902411A (zh) | 即时网站系统以及网站与即时通讯平台结合的方法 | |
CN103425473B (zh) | 一种开放式微博的实现方法和系统 | |
CN105339928B (zh) | 网站服务器请求重新路由 | |
US10664546B2 (en) | Techniques for URL archiving while browsing a web page | |
CA3144347A1 (en) | Creating and sharing customizable chat spaces |
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 |