本文文件夹:
- 概述
- 演示环境
- 部署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默认值)
请先保证在单个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.jarcommons-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、 在地址栏输入
点击訪问受保护的页面: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设置。
第八步:单点登录測试
改动了上面文件后,就可以測试能否够从一个点的登录,即能够訪问两个站点时都显示先登录的姓名:
在地址栏直接输入:www.bbs.com:8080
能够看到,显示的是newsusername。即之前在www.news.com上登录的username,即实现单点登录。
好了,以上步骤,完毕。假设能够配置成功。再进入下一步。
总结
以上都是在建立在SSO的war下实现的单点登录的效果,最简单的效果。最简单的入门操作,
在CAS的主页上,能够看到CASserver,和client配置的完整过程,依据提示,全然能够配置成功server和client。
同一时候,在CAS上也能够找到server端的程序和client的程序。都是已经配置好的,对于初步学习来说。全然能够直接取来配置測试。以上就是直接使用CAS官方提供的演示样例server和演示样例client配置一个单点登录的演示样例!
下篇在Eclipse环境中开发SSO