CAS示例环境部署及配置(完整版)
CAS 示例环境部署及配置一、 示例说明在本示例中将使用cas-server-3.5.0和cas-client-3.2.1搭建一个SSO 测试环境,在同一台机器上安装3个tomcat ,分别部署一个c
CAS 示例环境部署及配置
一、 示例说明
在本示例中将使用cas-server-3.5.0和cas-client-3.2.1搭建一个SSO 测试环境,在同一台机器上安装3个tomcat ,分别部署一个cas server和两个cas client,这三个应用使用不同的域名访问(通过配置hosts 文件实现多个域名)。配置完成之后,应达到如下效果:
1、首先访问app1,此时需要跳转到cas 登录页面,要求用户进行登录;
2、输入正确的用户名和密码,登录成功之后自动跳转到app1,而且可以获取到用户的登录信息;
3、在同一个浏览器中直接访问app2,此时不需要再次用户登录即可正常访问,而且可以获取到登录用户的信息;
4、反复访问app1和app2,只要不关闭浏览器,就可以一直正常访问并且可以获取到用户信息;
5、在浏览器地址栏输入CAS 登出的路径(https://cas.demo.com:8443/cas/logout),系统提示成功注销;
6、此时无论访问app1还是app2,都会跳转到cas 登录页面,要求用户重新登录。
二、 部署文件清单

三、 准备部署环境
本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),根据演示需求,我们需要准备三个不同的域名,分别对应cas server和两个cas 客户端应用,用修改hosts 文件的方法添加域名最简单方便(这个非常重要),在文件 c:windowssystem32driversetchosts 文件中添加三条
127.0.0.1 cas.demo.com
127.0.0.1 app1.demo.com
127.0.0.1 app2.demo.com
其中:cas.demo.com 对应部署cas server的tomcat ,如果这个tomcat 使用https 协议,则这个虚拟域名还用于证书生成;另外两个域名对应两个不同的客户端应用。
安装JDK ,配置JAVA_HOME、PATH 环境变量;在D 盘根目录复制三个TOMCAT 文件夹,分别命名为tomcat-for-cas 、tomcat-for-client-1、tomcat-for-client-2; 这个详细过程就不再详细描述。
四、 CAS SERVER部署及通用配置
3.1 CAS SERVER部署
cas-server-xxxx.war 的下载地址为http://www.jasig.org/cas/download,本文以cas-server-3.5.0.zip 为例,解压提取cas-server-3.5.0/modules/cas-server–webapp -3.5.0.war 文件,把此文件复制到tomcat-for-caswebapps目录并解压到cas 文件夹(如果不准备对CAS 的文件做修改,则可以直接将WAR 文件修改为cas.war 即可)。
启动tomcat (此tomcat 的默认监听端口为8090),在浏览器地址栏输入:
,在登录窗口中,用户名和密码都输入admin (实际上可以输入任何值,只要用户名和密码一致,就可以成功登录,这个是CAS 的默认验证规则),然后点击登录,会出现如下界面:
至此,CAS SERVER的应用已经部署成功,接下来就是根据情况进行配置。
3.2 CAS SERVER通用配置
1. 配置CAS SERVER节点名称
在文件${CAS}/WEB-INF/cas.properties中host.name 的值,比如修改为cas01。
2. 去除登录页面的“Non-secure Connection”提示
如果部署CAS SERVER 的TOMCAT 没有启用HTTPS 或者没有通过HTTPS


端口
,访问,则会出现如下提示,想要去掉这个提示,只能修改登录页面。
五、 CAS 客户端的部署及配置
4.1 客户端应用的部署
按照常规方式部署使用CAS 作为单点登录服务器的应用,并测试此应用是否能正常访问,我们使用的是一个测试应用,只有一个jsp 页面,将这个应用放到准备好的tomcat-for-client-2/webapps下面即可,访问应用的跟目录http://app2.demo.com:5090/c2,如果显示正常的页面即表示应用部署成功,我的测试应用显示如下信息:
4.2 复制CAS CLIENT需要的JAR 文件
复制CAS 核心文件和其所依赖的JAR ,不同版本的CAS 需要的JAR 文件可能稍微有所不同,本例使用的是cas-client-core-3.2.1,需要的JAR 文件如下所示:


4.3 配置web.xml 文件
有关cas-client 的web.xml 修改的详细说明见官网介绍:
我们这里只介绍将会用到的最简单的配置,将如下内容复制到web.xml 中,需要注意的是SingleSignOutFilter 的映射一定要写在其他过滤器的最前面,至少是过滤器CAS Authentication Filter的前面,然后根据实际情况修改参数即可,如下所示突出显示的部分:





4.4 部署结果测试
配置完成后,启动CAS SERVER所在的tomcat 和CAS 客户端所在的tomcat ,然后打开浏览器输入网址http://app2.demo.com:5090/c2,此时浏览器会自动进
,行跳转到CAS 的登录页面,地址栏会显示如下的地址:
在登录窗口中,用户名和密码都输入admin ,然后点击登录,系统会自动跳转到登录之前我们要访问的地址,出现如下界面:
至此,一个简单的CAS 测试环境就搭建成功了。
六、 为CAS SERVER配置HTTPS
5.1 获取安全证书


通常可以从一些安全机构申请安全证书,但是要支付一定的费用,在本试验
,中,我们使用JDK 自带的工具keytool 生成一个证书,生成证书的命令为:

在上面的命令行中,突出显示的部分为需要修改的部分,其他参数可以默认,也可以参照keytool 的参数说明进行修改;其中参数alias 指定了证书的别名,以后对证书的操作会用到此名称,我们这里设置为cas ,keystore 指定了证书存在磁盘上的文件路径,即我们需要将生成的证书存放在哪里。
创建证书的过程如下所示,需要注意的是途中画红方框的地方,这个值需要与访问cas 时的域名或者cas 所在的计算机名保持一致;最后一个密码和keystore 的密码保持一致即可,密码是casserver 。
5.2 配置CAS SERVER使用的TOMCAT
默认情况下,tomcat 是没有开

启https 端口的,因此需要在TOMCAT/conf/server.xml中进行手动配置。
首先找到如下代码的位置:
,在配置文件中添加红框中所示的代码,其中keystoreFile 为我们生成的证书文件的存放路径,keystorePass 为生成证书时输入的密码,本实验中我把证书文件复制到了server.xml 的目录下。
5.3 通过HTTPS 访问CAS 应用
在浏览器中输入https://cas.demo.com:8443/cas,出现如下所示的界面:

