您的位置:首页 > 其它

SSO 基于CAS实现单点登录 实例解析(二)

2017-04-20 20:21 387 查看
本文文件夹:

概述

演示环境

部署CAS-Server相关的Tomcat

部署CAS-Client相关的Tomcat

測试验证SSO

第一:

本demo在一个机器上实现(三个虚拟主机),来看SSO单点登录实例(我们能够布到多个机器上使用都是同一个道理的),一个server主机,和两个client虚拟主机

<span style="font-size:18px;"># 127.0.0.1 localhost
# ::1 localhost

127.0.0.1 localhost
127.0.0.1 www.bbs.itcast.cn
127.0.0.1 www.news.itcast.cn
127.0.0.1 www.news.com
127.0.0.1 www.bbs.com
127.0.0.1 www.server.com
</span></span></span>




第二:在tomcat的根文件夹下。分别建立三个文件夹,即server、bbs、news。

在三个文件夹下,分别都建立一个ROOT(ROOT是tomcat的主默认主页文件夹)文件夹。

将cas-server.xx.war解压后散放到/tomcat/server/ROOT文件夹下。

例如以下图:



注意文件夹结构,是散放到ROOT的文件夹下。

第三步:先測试server能否够正常使用

 启动tomcat,在地址栏输入:

 http://www.server.com:8080(由于我没有改动port默认值)

username与password同样就能够登录,默认





请先保证在单个server上登录能够登录成功。

假设不能登录成功,请反复前面的配置。

第四步:配置两个client

将下载的文件mywebapp.war分别解压到tomcat/bbs/ROOT文件夹下和tomcat/news/ROOT文件夹下。注意是散放到ROOT文件夹下。

因为在mywebapp.war中并没有放置依赖的jar文件。所以,还须要我们加入它所依赖的jar文件,为此我为大家准备了已经放放置好的

mywebapp.war文件。

放置好的文件夹结构例如以下:



WEB-INF/lib文件夹下的包例如以下:

cas-client-core-3.2.1.jar
commons-logging-1.1.jar

这两个包,在cas-client.rar文件里都能够找到。

此处,你能够启动一个tomcat。假设启动成功。则进入下一步。

第五步:改动client的配置文件

当使用登录client受保护的资源时,假设发现还没有登录。则会重定向到server(售票处)请求登录验证,登录成功后即会获取一张票据,server会携带这张票据再重定向到client页面。

改动client的web.xml配置文件,让它在登录时,知道去哪台server:

注意将里面的https所有改动成http。

改动的部分主要分为两块:

1:改动登录重定向过虑器,它用于保护受保护的资源,假设发面用户在訪问受保护的资源时。用户还没有登录。则会重定向到server,要求用户登录:

<span style="font-size:18px;"><filter>
<!--配置登录过滤器。注意负责在登录时重定到服务器页面-->
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<!--到服务器地址,注意后面的/login-->
<param-name>casServerLoginUrl</param-name>
<param-value>http://www.server.com:8080/login</param-value>
</init-param>
<init-param>
<!--本程序所在的URL-->
<param-name>serverName</param-name>
<param-value>http://www.news.com:8080</param-value>
</init-param>
<init-param>
<param-name>renew</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>gateway</param-name>
<param-value>false</param-value>
</init-param>
</filter></span>


第六步:測试登录

眼下还不能实现单点登录。

但能够对随意的一个client进行登录验证。

1、 在地址栏输入

http://www.news.com:8080



点击訪问受保护的页面:got to protected area

将重定向到server请求登录:



登录成功后即重定回原请求页面:



第七步:配置能够单点登录

Casserver都是用spring配置文件配置而成。

且使用了cookie技术。在ticketGrantingTicketCookieGenerator.xml文件里,保存了cookie的生成方式及有效时间。



注意,这是在server服务器上的spring配置文件。

打开此文件。改动成下面内容:

<span style="font-size:18px;"><bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="3600"
p:cookieName="mycas"
p:cookiePath="/" /></span>


说明:false是指支持http协议登录。默觉得true,支持https登录。

 3600中cookie保存在本地的时间。默觉得-1即浏览器缓存。

   cookiePath是cookie的path设置。

第八步:单点登录測试

改动了上面文件后,就可以測试能否够从一个点的登录,即能够訪问两个站点时都显示先登录的姓名:

先输入http://www.news.com:8080



在地址栏直接输入:www.bbs.com:8080



能够看到,显示的是newsusername。即之前在www.news.com上登录的username,即实现单点登录。

好了,以上步骤,完毕。假设能够配置成功。再进入下一步。





总结

以上都是在建立在SSO的war下实现的单点登录的效果,最简单的效果。最简单的入门操作,

在CAS的主页上,能够看到CASserver,和client配置的完整过程,依据提示,全然能够配置成功server和client。

同一时候,在CAS上也能够找到server端的程序和client的程序。都是已经配置好的,对于初步学习来说。全然能够直接取来配置測试。以上就是直接使用CAS官方提供的演示样例server和演示样例client配置一个单点登录的演示样例!

下篇在Eclipse环境中开发SSO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: