上篇博客我们讲过了同属同一个一级域名下的应用实现单点登录,这篇文章我们讲解完全不同的域之间的应用实现单点登陆。这里使用的是CAS方式实现。
实现流程图:
说明:假设有这样两个系统:www.bbs.com和www.news.com,首先访问www.bbs.com,这时候如果没有登陆,会跳转到CAS Server进行登陆验证,这个CAS server是我们单独用来做登陆验证的独立系统,当通过数据库查询验证,用户名密码正确,那CAS Server通过socket传递用户信息给www.bbs.com,然后www.bbs.com将用户信息设置到session中,于此同时CAS Server这个系统还会向客户端写一个cookie;当访问www.news.com时,该系统拿着之前保存到客户端的cookie(因为cookie都是CAS Server生成的,所以可以拿到),去CAS Server进行验证,发现已经登陆过,所以通过socket传递用户信息到www.news.com,设置到session,无需登录,直接跳转到首页。
我们将会在本地模拟三个系统,一个是www.bbs.com,一个是www.news.com,还有一个是CAS登陆系统www.server.com。下面我们先配置系统配置文件hosts,新增如图:
然后修改tomact配置文件server.xml,新增Host节点,Host节点的作用上节已经说明,这里不再赘述。新增如图,其中第一个是默认的,我们增加的是后三个:
然后网上下载cas-server-webapp的war包,在tomact目录下的webapps所在目录创建server目录,将war包放在server下,然后启动tomact,war包会被解压到当前目录,访问www.server.com/项目名,可以进到CAS登录页,然后将CAS项目目录名改为ROOT,这样访问www.server.com就能直接访问到CAS登录页了。这里只讲解基本配置及原理,至于具体客户端(即其他两个系统的实现可以参考我的博文:http://blog.csdn.net/u013213157/article/details/74315648。