一种基于跨域技术的单点登录认证系统及方法与流程

文档序号:16538281发布日期:2019-01-08 20:05阅读:203来源:国知局
一种基于跨域技术的单点登录认证系统及方法与流程

本发明涉及计算机技术领域,特别涉及一种基于跨域技术的单点登录认证系统及方法。



背景技术:

单点登录是目前比较流行的企业业务整合的解决方案之一。在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

目前,用户登录成功后,可将用户信息保存在session(时域)中,sessionid保存在cookie(储存在用户本地终端上的数据)中,每次访问需要登录访问的资源,比如url(uniformresourcelocator,统一资源定位符)时,判断当前session是否为空,为空的话跳转到登录界面登录,不为空的话允许访问。

但是,现有实现方式不能实现跨域登录认证。



技术实现要素:

本发明提供了一种基于跨域技术的单点登录认证系统及方法,能够实现跨域登录认证。

为了达到上述目的,本发明是通过如下技术方案实现的:

一方面,本发明提供了一种基于跨域技术的单点登录认证系统,包括:

用户端、主系统、总线系统、所述主系统对应的至少一个子系统;

其中,所述用户端,用于通过运行的浏览器,在接收到外部针对所述主系统的、携带有目标用户信息的登录请求时,将所述目标用户信息发送给所述主系统,根据所述目标用户信息登录所述主系统并记录所述目标用户信息;通过运行的所述浏览器,在接收到外部针对任一所述子系统的登录请求时,触发该子系统;在接收到任一所述子系统发来的用户信息时,判断是否记录有该子系统发来的用户信息,若是,通过运行的所述浏览器,登录该子系统;

所述主系统,用于根据所述目标用户信息、所述用户端的ip地址、所述浏览器的类型,生成目标ticket信息;存储所述目标ticket信息并将其发送给所述总线系统;

所述总线系统,用于存储所述目标ticket信息;针对每一个所述子系统均执行:接收当前子系统发来的ticket信息,判断是否存储有与接收到的ticket信息相一致的第一ticket信息,若是,将所述第一ticket信息中的用户信息返回至所述当前子系统;

每一个所述子系统,均用于经所述用户端触发,将所述主系统存储的ticket信息发送给所述总线系统;将所述总线系统返回的用户信息发送给所述用户端。

进一步地,所述主系统包括企业数据管理门户网站时,所述单点登录认证系统还包括:数据管理系统;

所述企业数据管理门户网站,具体用于根据预设的加密方式加密所述目标用户信息、所述用户端的ip地址、所述浏览器的类型,以生成所述目标ticket信息;

所述数据管理系统,用于使用令牌传参方式从所述企业数据管理门户网站中获取所述目标ticket信息,并获取到的所述目标ticket信息、经所述企业数据管理门户网站的ldap(lightweightdirectoryaccessprotocol,轻量目录访问协议)接口而返回的所述目标ticket信息中的用户信息,传输给所述总线系统;

每一个所述子系统,均具体用于经所述用户端触发,通过重定向技术获得企业数据管理门户网站存储的ticket信息,并将获得的ticket信息发送给所述总线系统以请求登录验证。

进一步地,该单点登录认证系统还包括:证书导入单元;

其中,所述证书导入单元,用于使用jdk自带的keytool生成cas(centralauthenticationservice,中央认证服务器)证书;导出所述cas证书;将导出的cas证书导入到所述数据管理系统的客户端;

所述总线系统,还用于下载cas的服务端并解压,把解压后的文件中,modules文件夹中的cas-server-webapp-3.4.8.war文件拷贝到%tomcat_home%\webapps下,并修改文件名为cas.war;修改%tomcat_home%\conf\server.xml文件;访问http://yourhost:8443/cas,输入用户名和密码进行登录,以完成cas服务端配置;

每一个所述子系统,均用于配置过滤器,以通过浏览器重定向来获得ticket信息。

进一步地,所述用户端,还用于在监测到外部针对所述主系统的退出登录操作,或,针对所述浏览器的关闭操作时,清除所述目标用户信息,控制处于登录状态的每一个所述子系统退出登录,并经所述主系统触发所述总线系统清除所述目标ticket信息。

进一步地,所述用户端,还用于通过运行的所述浏览器,基于所述目标用户信息以访问所述主系统的jsp(javaserverpages,java服务器页面);基于所述浏览器存储所述jsp返回的cookie;生成所述jsp的session所对应的jssessionid,并在url中记录所述jssessionid;在监测到外部针对所述主系统的退出登录操作,或,针对所述浏览器的关闭操作时,删除所述cookie和所述jssessionid。

另一方面,本发明提供了一种基于跨域技术的单点登录认证方法,包括:

用户端通过运行的浏览器,在接收到外部针对主系统的、携带有目标用户信息的登录请求时,将所述目标用户信息发送给所述主系统,根据所述目标用户信息登录所述主系统并记录所述目标用户信息;

所述主系统根据所述目标用户信息、所述用户端的ip地址、所述浏览器的类型,生成目标ticket信息,存储所述目标ticket信息并将其发送给总线系统;

所述总线系统存储所述目标ticket信息;

所述用户端通过运行的所述浏览器,在接收到外部针对所述主系统对应的任一子系统的登录请求时,触发该子系统;

每一个所述子系统经所述用户端触发,将所述主系统存储的ticket信息发送给所述总线系统;

所述总线系统针对每一个所述子系统均执行:接收当前子系统发来的ticket信息,判断是否存储有与接收到的ticket信息相一致的第一ticket信息,若是,将所述第一ticket信息中的用户信息返回至所述当前子系统;

每一个所述子系统将所述总线系统返回的用户信息发送给所述用户端;

所述用户端在接收到任一所述子系统发来的用户信息时,判断是否记录有该子系统发来的用户信息,若是,通过运行的所述浏览器,登录该子系统。

进一步地,所述主系统包括企业数据管理门户网站;

所述主系统根据所述目标用户信息、所述用户端的ip地址、所述浏览器的类型,生成目标ticket信息包括:所述企业数据管理门户网站根据预设的加密方式加密所述目标用户信息、所述用户端的ip地址、所述浏览器的类型,以生成所述目标ticket信息;

所述主系统将所述目标ticket信息发送给总线系统,包括:数据管理系统使用令牌传参方式从所述企业数据管理门户网站中获取所述目标ticket信息,并获取到的所述目标ticket信息、经所述企业数据管理门户网站的ldap接口而返回的所述目标ticket信息中的用户信息,传输给所述总线系统;

所述每一个所述子系统经所述用户端触发,将所述主系统存储的ticket信息发送给所述总线系统,包括:每一个所述子系统经所述用户端触发,通过重定向技术获得企业数据管理门户网站存储的ticket信息,并将获得的ticket信息发送给所述总线系统以请求登录验证。

进一步地,该方法还包括:证书导入单元使用jdk自带的keytool生成cas证书,导出所述cas证书,将导出的cas证书导入到所述数据管理系统的客户端;

所述总线系统下载cas的服务端并解压,把解压后的文件中,modules文件夹中的cas-server-webapp-3.4.8.war文件拷贝到%tomcat_home%\webapps下,并修改文件名为cas.war;修改%tomcat_home%\conf\server.xml文件;访问http://yourhost:8443/cas,输入用户名和密码进行登录,以完成cas服务端配置;

每一个所述子系统配置过滤器,以通过浏览器重定向来获得ticket信息。

进一步地,该方法还包括:所述用户端在监测到外部针对所述主系统的退出登录操作,或,针对所述浏览器的关闭操作时,清除所述目标用户信息,控制处于登录状态的每一个所述子系统退出登录,并经所述主系统触发所述总线系统清除所述目标ticket信息。

进一步地,该方法还包括:所述用户端通过运行的所述浏览器,基于所述目标用户信息以访问所述主系统的jsp;基于所述浏览器存储所述jsp返回的cookie;生成所述jsp的session所对应的jssessionid,并在url中记录所述jssessionid;在监测到外部针对所述主系统的退出登录操作,或,针对所述浏览器的关闭操作时,删除所述cookie和所述jssessionid。

本发明提供了一种基于跨域技术的单点登录认证系统及方法,该系统包括用户端、主系统、总线系统、主系统对应的至少一个子系统。用户端通过浏览器接收外部针对主系统的登录请求,记录其携带的目标用户信息并据此登录主系统;通过浏览器在接收到外部针对一子系统的登录请求时,触发该子系统以使其将主系统存储的ticket信息发送给总线系统;记录有一子系统发来的用户信息时,通过浏览器登录该子系统。主系统根据目标用户信息、用户端的ip地址、浏览器的类型,生成目标ticket信息并存储。总线系统存储目标ticket信息,当存储有一子系统发来的ticket信息时,将其中的用户信息返回。因此,本发明能够实现跨域登录认证。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种基于跨域技术的单点登录认证系统的示意图;

图2是本发明一实施例提供的另一种基于跨域技术的单点登录认证系统的示意图;

图3是本发明一实施例提供的一种实现单点登录认证的业务流程的示意图;

图4是本发明一实施例提供的一种基于跨域技术的单点登录认证方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种基于跨域技术的单点登录认证系统,可以包括:用户端101、主系统102、总线系统103、所述主系统102对应的至少一个子系统104;

其中,所述用户端101,用于通过运行的浏览器,在接收到外部针对所述主系统102的、携带有目标用户信息的登录请求时,将所述目标用户信息发送给所述主系统102,根据所述目标用户信息登录所述主系统102并记录所述目标用户信息;通过运行的所述浏览器,在接收到外部针对任一所述子系统104的登录请求时,触发该子系统104;在接收到任一所述子系统104发来的用户信息时,判断是否记录有该子系统104发来的用户信息,若是,通过运行的所述浏览器,登录该子系统104;

所述主系统102,用于根据所述目标用户信息、所述用户端101的ip地址、所述浏览器的类型,生成目标ticket信息;存储所述目标ticket信息并将其发送给所述总线系统103;

所述总线系统103,用于存储所述目标ticket信息;针对每一个所述子系统104均执行:接收当前子系统发来的ticket信息,判断是否存储有与接收到的ticket信息相一致的第一ticket信息,若是,将所述第一ticket信息中的用户信息返回至所述当前子系统;

每一个所述子系统104,均用于经所述用户端101触发,将所述主系统102存储的ticket信息发送给所述总线系统103;将所述总线系统103返回的用户信息发送给所述用户端101。

本发明实施例提供了一种基于跨域技术的单点登录认证系统,包括用户端、主系统、总线系统、主系统对应的至少一个子系统。用户端通过浏览器接收外部针对主系统的登录请求,记录其携带的目标用户信息并据此登录主系统;通过浏览器在接收到外部针对一子系统的登录请求时,触发该子系统以使其将主系统存储的ticket信息发送给总线系统;记录有一子系统发来的用户信息时,通过浏览器登录该子系统。主系统根据目标用户信息、用户端的ip地址、浏览器的类型,生成目标ticket信息并存储。总线系统存储目标ticket信息,当存储有一子系统发来的ticket信息时,将其中的用户信息返回。因此,本发明实施例能够实现跨域登录认证。

详细地,基于跨域技术完成单点登录服务认证,可以采用服务端的session和客户端的cookies信息来完成跨域访问和信息传递,以保持同一个浏览器下不同系统或服务的访问和调度。子系统或服务获得ticket信息后,需与总线系统获得访问权限认证和用户信息返回等,提供访问安全和数据完成性,同时也实现用户信息的独特性和唯一性。

在本发明的一个实施例中,请参考图2,所述主系统102包括企业数据管理门户网站1021时,所述单点登录认证系统还包括:数据管理系统201;

所述企业数据管理门户网站1021,具体用于根据预设的加密方式加密所述目标用户信息、所述用户端101的ip地址、所述浏览器的类型,以生成所述目标ticket信息;

所述数据管理系统201,用于使用令牌传参方式从所述企业数据管理门户网站1021中获取所述目标ticket信息,并获取到的所述目标ticket信息、经所述企业数据管理门户网站1021的ldap接口而返回的所述目标ticket信息中的用户信息,传输给所述总线系统103;

每一个所述子系统104,均具体用于经所述用户端101触发,通过重定向技术获得企业数据管理门户网站1021存储的ticket信息,并将获得的ticket信息发送给所述总线系统103以请求登录验证。

详细地,用户经浏览器登录企业数据管理门户网站时,可以经数据管理系统以实现企业数据管理门户网站与总线系统间的信息交互。对应地,登录企业数据管理门户网站后,用户经同一类型浏览器登录任一子系统,以向总线系统请求登录验证时,可以无需数据管理系统的参与。

基于上述内容,具体地,基于数据管理系统和消息服务总线权限控制对接企业数据管理门户网站ldap,实现单点登录机制,数据管理系统使用令牌传参方式来实现获得用户在企业数据管理门户网站的登录信息,并负责传输给消息服务总线进行保存,同时提供该登录用户唯一标识的ticket信息,其他系统通过重定向技术获得浏览器的ticket信息,并发送消息服务总线进行验证,完成单点登录效果。

举例来说,如业务人员a登录企业数据管理门户网站,此时数据管理系统会发现业务人员a登录ticket信息和企业数据管理门户网站的ladp接口返回的user_info信息给总线系统保存,此时在该浏览器上面访问总线管理平台,管控平台会通过重定向方法获得ticket信息,并发送给总线进行验证,并得到user_info信息,从而完成免密登录后台管理系统,完成单点登录效果。

举例来说,请参考图3,提供了一种实现单点登录认证的业务流程的示意图,图3中的业务系统可以对应于企业数据管理门户网站。

图3中,f1可以为“gethttp://www.app01.com”;f2可以为“302location:http://150.20.19.236/vk-tax-web/sso/login?service=http%3a%2f%2fwww.app01.com”;f3可以为“gethttp://150.20.19.236/vk-tax-web/sso/login?service=http%3a%2f%2fwww.app01.com”;f4可以为“将ticket和user_info推送给总线”;f5可以为“302location:http://www.app01.com?ticket=st-123456”;f6可以为“gethttp://www.app01.com?ticket=st-123456”;f7可以为“去总线验证ticket”;f8可以为“ticket验证成功,返回user_info”;f9可以为“set-cookie302location:http:www.app01.com”;f10可以为“gethttp:www.app01.com”;f11可以为“200ok”;f12可以为“gethttp://www.app01.com”;f13可以为“200ok”。

其中,s1可以为“无本系统会话,使用单点登录,将请求连接编码作为service,并重定向到数据管理系统单点登录接口”;s2可以为“保持ticket和user_info”;s3可以为“ticket验证成功,建立本系统会话,重定向到原始请求链接,以避免ticket直接在地址栏显示”;s4可以为“已有本系统会话,直接放行”。

在本发明的一个实施例中,请参考图2,该单点登录认证系统还包括:证书导入单元202;

其中,所述证书导入单元202,用于使用jdk自带的keytool生成cas证书;导出所述cas证书;将导出的cas证书导入到所述数据管理系统201的客户端;

所述总线系统103,还用于下载cas的服务端并解压,把解压后的文件中,modules文件夹中的cas-server-webapp-3.4.8.war文件拷贝到%tomcat_home%\webapps下,并修改文件名为cas.war;修改%tomcat_home%\conf\server.xml文件;访问http://yourhost:8443/cas,输入用户名和密码进行登录,以完成cas服务端配置;

每一个所述子系统104,均用于配置过滤器,以通过浏览器重定向来获得ticket信息。

详细地,cas是一个独立于平台的,易于理解的基于java的开源框架或软件,支持代理功能,它能为多个应用提供单点登录的基础架构,同时也可以为非web应用但拥有web的前端功能提供单点登录认证服务功能,它将为用户身份认证集中于单一的web应用,让用户简化密码管理,从而提高安全性;二期当应用程序需要修改身份验证的业务逻辑时,不需要修改过多的代码。

基于上述内容,cas证书可用于实现此单点登录,cas证书是服务器端和客户端安全通信的凭证,可使用jdk自带keytool生成证书。对于此命令的执行,相关实现代码可以所示:

c:﹨documentsandsettings﹨cocosily>keytool–genkey–aliassmalllove–keyalgrsa–keystored:/keys/smallkey

输入keystore密码:

您的名字与姓氏是什么?

[unknown]:sun

您的组织名称是什么?

[unknown]:asmlllove

您所在的城市或区域名称是什么?

[unknown]:西安

您所在的州或省份名称是什么?

[unknown]:陕西

该单位的两字母国家代码是什么

[unknown]:zh

cn=sun,ou=smalllove,o=smalllove,l=西安,st=陕西,c=zh正确吗?

[否]:y

输入<smalllove>的主密码

(如果和keystore密码相同,按回车)

再次输入新密码:

c:﹨documentsandsettings﹨cocosily>

详细地,对于导出证书,相关实现代码可以所示:

c:﹨>keytool–export–filed:/keys/small.crt–aliassmalllove–keystored:/keys/smallkey

输入keystore密码:

保存在文件中的认证<d:/keys/small.crt>

c:﹨>=

详细地,对于将生成的cas证书导入到客户端,相关实现代码可以所示:

c:﹨>keytool–impotr–keystorec:﹨java﹨jdki.6.0-21﹨jre/lib﹨security﹨cacerts–file

d:/keys/small.crt–aliassmalllove

再次输入新密码:

所有者:cn=sun,ou=smalllove,o=smalllove,l=西安,st=陕西,c=zh

签发人:cn=sun,ou=smalllove,o=smalllove,l=西安,st=陕西,c=zh

序列号:4e3cb2ca

有效期:sataug0611:19:38cst2011至frinov0411:19:38cst2011

证书指纹:

md5:cb:d7:ae:b9:d7:6f:ed:83:87:54:ee:57:a6:f6:22:91

sha1:16:8c:b3:bd:8c:1e:e2:14:08:d5:75:f1:d5:35:3b:b4:7c:ac:89:5e

签名算法名称:sha1withrsa

版本:3

信任这个认证?[否]:y

认证已添加至keystore中

c:﹨>

详细地,对于修改%tomcat_home%\conf\server.xml文件,可以去掉此文件83到93行之间的注释,修改为:

详细地,输入用户名和密码进行登录时,输入的用户名和密码均可以为admin。登录成功,即完成cas服务端配置。

详细地,对于客户端配置过滤器,相关实现代码可以所示:

详细地,通过浏览器重定向获取ticket,可根据ticket去总线服务验证和获得用户信息,相关实现代码可以所示:

其中,获得的用户信息内容,可以为下述内容:

详细地,单点登录是一种多站点共享登录访问授权机制,访问用户只需要在一个站点登录就可以访问其它站点需要登录访问的资源(url)。用户在一个站点注销登录,则其它站点的登录状态也被注销。简而言之就是:一处登录,处处登录,一处注销,处处注销。

基于上述内容,在本发明的一个实施例中,所述用户端101,还用于在监测到外部针对所述主系统102的退出登录操作,或,针对所述浏览器的关闭操作时,清除所述目标用户信息,控制处于登录状态的每一个所述子系统104退出登录,并经所述主系统102触发所述总线系统103清除所述目标ticket信息。

在本发明的一个实施例中,所述用户端101,还用于通过运行的所述浏览器,基于所述目标用户信息以访问所述主系统102的jsp;基于所述浏览器存储所述jsp返回的cookie;生成所述jsp的session所对应的jssessionid,并在url中记录所述jssessionid;在监测到外部针对所述主系统102的退出登录操作,或,针对所述浏览器的关闭操作时,删除所述cookie和所述jssessionid。

详细地,cookie和session机制是为了解决http协议的无状态而生的,其中,cookie是客户端保存用户信息的机制,session是服务器保存用户信息的机制。cookie可以是在浏览器中的一个文本,当浏览器第一次访问jsp时,jspresponse会给浏览器返回一个cookie,然后浏览器存储它。

cookie具有不可跨域性,但cookie和session联合使用可以解决跨域记录用户用户信息的问题。为了使浏览器记住服务器的session,浏览器会生成一个id,这个id就叫做jssessionid。为了防止一些浏览器禁用cookie,javaee标准退出了url的重写,使url里面记录jssessionid。这一让浏览器记住服务器的session的形式可以叫做会话cookie,会话cookie在用户登出或者浏览器关闭后自动删除,这样叫做一次会话。cas这样的sso(singlesignon,单点登录)解决方案可构建在cookie和session标准之上的。

综上所述,本发明实施例可以通过服务端的session、客户端的cookies、和js跨域重定向技术,实现子系统单点登录效果,解决传统系统间无法跨域免登陆访问操作。

本发明实施例中,经基于跨域技术的单点登录认证系统,能够实现跨域登录认证,故可以同时具有提高用户效益、提高研发效率、减低管理员工作量等有益效果。

具体地,对于提高用户效益来说,显著减少了用户为访问多个应用系统而进行身份认证的时间和烦恼,从而提高了工作效率。用户也不需要记忆大量的用户名和密码,同时也减低系统管理员重复的工作量。

具体地,对于提高研发效率来说,单点登录为研发人员提供了统一的认证框架,单点登录是完全独立的服务,研发人员不需要担心用户登录认证问题,一旦系统接入单点登录服务,使用用户名向应用程序发起登录请求,研发人员就可以认为认证操作已发生。

具体地,对于减低管理员工作量来说,简化了系统管理员的工作,用户的账号信息统一在用户信息数据库中保存,系统管理员只需要在一个数据库里对用户账号信息进行维护操作即可,很大程度上提高了日常管理效率。

如图4所示,本发明一个实施例提供了一种基于跨域技术的单点登录认证方法,可以包括以下步骤:

步骤401:用户端通过运行的浏览器,在接收到外部针对主系统的、携带有目标用户信息的登录请求时,将所述目标用户信息发送给所述主系统,根据所述目标用户信息登录所述主系统并记录所述目标用户信息。

步骤402:所述主系统根据所述目标用户信息、所述用户端的ip地址、所述浏览器的类型,生成目标ticket信息,存储所述目标ticket信息并将其发送给总线系统。

步骤403:所述总线系统存储所述目标ticket信息。

步骤404:所述用户端通过运行的所述浏览器,在接收到外部针对所述主系统对应的任一子系统的登录请求时,触发该子系统。

步骤405:每一个所述子系统经所述用户端触发,将所述主系统存储的ticket信息发送给所述总线系统。

步骤406:所述总线系统针对每一个所述子系统均执行:接收当前子系统发来的ticket信息,判断是否存储有与接收到的ticket信息相一致的第一ticket信息,若是,将所述第一ticket信息中的用户信息返回至所述当前子系统,否则,结束当前流程。

步骤407:每一个所述子系统将所述总线系统返回的用户信息发送给所述用户端。

步骤408:所述用户端在接收到任一所述子系统发来的用户信息时,判断是否记录有该子系统发来的用户信息,若是,通过运行的所述浏览器,登录该子系统,否则,结束当前流程。

在本发明一个实施例中,所述主系统包括企业数据管理门户网站;

步骤402中,所述主系统根据所述目标用户信息、所述用户端的ip地址、所述浏览器的类型,生成目标ticket信息包括:所述企业数据管理门户网站根据预设的加密方式加密所述目标用户信息、所述用户端的ip地址、所述浏览器的类型,以生成所述目标ticket信息;

步骤402中,所述主系统将所述目标ticket信息发送给总线系统,包括:数据管理系统使用令牌传参方式从所述企业数据管理门户网站中获取所述目标ticket信息,并获取到的所述目标ticket信息、经所述企业数据管理门户网站的ldap接口而返回的所述目标ticket信息中的用户信息,传输给所述总线系统;

步骤405中,所述每一个所述子系统经所述用户端触发,将所述主系统存储的ticket信息发送给所述总线系统,包括:每一个所述子系统经所述用户端触发,通过重定向技术获得企业数据管理门户网站存储的ticket信息,并将获得的ticket信息发送给所述总线系统以请求登录验证。

在本发明一个实施例中,该方法可以进一步包括:证书导入单元使用jdk自带的keytool生成cas证书,导出所述cas证书,将导出的cas证书导入到所述数据管理系统的客户端;所述总线系统下载cas的服务端并解压,把解压后的文件中,modules文件夹中的cas-server-webapp-3.4.8.war文件拷贝到%tomcat_home%\webapps下,并修改文件名为cas.war;修改%tomcat_home%\conf\server.xml文件;访问http://yourhost:8443/cas,输入用户名和密码进行登录,以完成cas服务端配置;每一个所述子系统配置过滤器,以通过浏览器重定向来获得ticket信息。

详细地,这一过程可以在上述步骤401之前即执行好,以支持上述步骤401至步骤408的正常执行。

在本发明一个实施例中,该方法可以进一步包括:所述用户端在监测到外部针对所述主系统的退出登录操作,或,针对所述浏览器的关闭操作时,清除所述目标用户信息,控制处于登录状态的每一个所述子系统退出登录,并经所述主系统触发所述总线系统清除所述目标ticket信息。

详细地,这一过程可以在上述步骤408之后执行。

在本发明一个实施例中,该方法可以进一步包括:所述用户端通过运行的所述浏览器,基于所述目标用户信息以访问所述主系统的jsp;基于所述浏览器存储所述jsp返回的cookie;生成所述jsp的session所对应的jssessionid,并在url中记录所述jssessionid;在监测到外部针对所述主系统的退出登录操作,或,针对所述浏览器的关闭操作时,删除所述cookie和所述jssessionid。

上述方法内的各单元、模块、系统之间的信息交互、执行过程等内容,由于与本发明系统实施例基于同一构思,具体内容可参见本发明系统实施例中的叙述,此处不再赘述。

综上所述,本发明的各个实施例至少具有如下有益效果:

1、本发明实施例中,基于跨域技术的单点登录认证系统包括用户端、主系统、总线系统、主系统对应的至少一个子系统。用户端通过浏览器接收外部针对主系统的登录请求,记录其携带的目标用户信息并据此登录主系统;通过浏览器在接收到外部针对一子系统的登录请求时,触发该子系统以使其将主系统存储的ticket信息发送给总线系统;记录有一子系统发来的用户信息时,通过浏览器登录该子系统。主系统根据目标用户信息、用户端的ip地址、浏览器的类型,生成目标ticket信息并存储。总线系统存储目标ticket信息,当存储有一子系统发来的ticket信息时,将其中的用户信息返回。因此,本发明实施例能够实现跨域登录认证。

2、本发明实施例中,可以通过服务端的session、客户端的cookies、和js跨域重定向技术,实现子系统单点登录效果,解决传统系统间无法跨域免登陆访问操作。

3、本发明实施例中,经基于跨域技术的单点登录认证系统,能够实现跨域登录认证,故可以同时具有提高用户效益、提高研发效率、减低管理员工作量等有益效果。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1