一、资源版本:
Tomcat5.0.28
cas-server-3.0.7
cas-client-2.0.11
二、Tomcat部署环境:
casserver——cas服务器部署环境
casclient——cas客户机部署环境(发布jsp-examples)
casclient1——cas客户机部署环境(发布servlets-examples)
三、SSL文件准备:
server.keystore——服务器端库文件
client.keystore——客户端库文件
server.cer——服务器端证书(自制)
client.cer——客户端证书(自制)
cacerts——证书链
1、生成服务器端库文件
keytool -genkey -alias tomcat-server -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
2、导出服务器端证书
keytool -export -alias tomcat-server -storepass changeit -file server.cer -keystore server.keystore
3、生成客户端库文件
keytool -genkey -alias tomcat-client -keyalg RSA -keypass changeit -storepass changeit -keystore client.keystore
4、导出客户端证书
keytool -export -alias tomcat-client -storepass changeit -file client.cer -keystore client.keystore
5、导入服务器端证书到cacerts
keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
6、导入客户端证书到cacerts
keytool -import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit
将server.keystore、client.keystore、server.cer、client.cer、cacerts文件复制到cas服务器、cas客户机、cas客户机1的TOMCAT_HOME主目录及JAVA_HOEM\jre\lib\security目录下。
四、Tomcat下cas安装部署
1、casserver配置
采用jakarta-tomcat-5.0.28.zip解压后默认配置,重点注意Server port="8005"
及Connector port="8080" redirectPort="8443"(cas客户端需改端口号)。
A、 编辑.\casserver\conf目录下server.xml文件并保存。
找到如下片段,红色字体为新增内容。
-
XML code
-
<!--
Define a SSL Coyote HTTP/1.1 Connector on port 8443
-->
<
Connector
port
="8443"
maxThreads
="150"
minSpareThreads
="25"
maxSpareThreads
="75"
enableLookups
="false"
disableUploadTimeout
="true"
acceptCount
="100"
debug
="0"
scheme
="https"
secure
="true"
clientAuth
="false"
sslProtocol
="TLS"
keystoreFile
="/server.keystore"
keystorePass
="changeit"
/>
B、拷贝cas.war至.\casserver\webapps目录。
至此,cas服务器部署完毕。启动服务器,访问https://localhost:8443如能显示Tomcat首页则表示cas部署成功。
2、casclient配置
jakarta-tomcat-5.0.28.zip解压后修改根目录名为casclient。
A、编辑.\casclient\conf目录下server.xml文件并保存。
找到如下片段,红色字体为修改内容。
-
XML code
-
<
Server
port
="8006"
shutdown
="SHUTDOWN"
debug
="0"
>
<
Connector
port
="8081"
maxThreads
="150"
minSpareThreads
="25"
maxSpareThreads
="75"
enableLookups
="false"
redirectPort
="8080"
acceptCount
="100"
debug
="0"
connectionTimeout
="20000"
disableUploadTimeout
="true"
/>
B、编辑.\casclient\webapps\jsp-examples\WEB-INF目录下web.xml文件并保存。
加入如下片段,重点注意红色字体部分。
-
XML code
-
<
filter
>
<
filter-name
>
CASFilter
</
filter-name
>
<
filter-class
>
edu.yale.its.tp.cas.client.filter.CASFilter
</
filter-class
>
<
init-param
>
<
param-name
>
edu.yale.its.tp.cas.client.filter.loginUrl
</
param-name
>
<
param-value
>
https://localhost:8443/cas/login
</
param-value
>
</
init-param
>
<
init-param
>
<
param-name
>
edu.yale.its.tp.cas.client.filter.validateUrl
</
param-name
>
<
param-value
>
https://localhost:8443/cas/proxyValidate
</
param-value
>
</
init-param
>
<
init-param
>
<
param-name
>
edu.yale.its.tp.cas.client.filter.serverName
</
param-name
>
<
param-value
>
localhost:8081
</
param-value
>
</
init-param
>
</
filter
>
<
filter-mapping
>
<
filter-name
>
CASFilter
</
filter-name
>
<
url-pattern
>
/*
</
url-pattern
>
</
filter-mapping
>
C、将casclient.jar拷贝至.\casclient\webapps\jsp-examples\WEB-INF\lib目录下。
至此,cas客户端部署完毕。启动客户服务器,访问http://localhost:8081/jsp-examples正常情况会弹出安全警报,点击确认后转向cas登录页面。此时casserver采用默认验证,用户名、口令输入相同的字符串即可,验证通过后转向jsp-examples应用的默认页面。
3、casclient1配置
jakarta-tomcat-5.0.28.zip解压后修改根目录名为casclient1。
D、编辑.\casclient1\conf目录下server.xml文件并保存。
找到如下片段,红色字体为修改内容。
-
XML code
-
<
Server
port
="8007"
shutdown
="SHUTDOWN"
debug
="0"
>
<
Connector
port
="8082"
maxThreads
="150"
minSpareThreads
="25"
maxSpareThreads
="75"
enableLookups
="false"
redirectPort
="8080"
acceptCount
="100"
debug
="0"
connectionTimeout
="20000"
disableUploadTimeout
="true"
/>
E、编辑.\casclient1\webapps\servlets-examples\WEB-INF目录下web.xml文件并保存。
加入如下片段,重点注意红色字体部分。
-
XML code
-
<
filter
>
<
filter-name
>
CASFilter
</
filter-name
>
<
filter-class
>
edu.yale.its.tp.cas.client.filter.CASFilter
</
filter-class
>
<
init-param
>
<
param-name
>
edu.yale.its.tp.cas.client.filter.loginUrl
</
param-name
>
<
param-value
>
https://localhost:8443/cas/login
</
param-value
>
</
init-param
>
<
init-param
>
<
param-name
>
edu.yale.its.tp.cas.client.filter.validateUrl
</
param-name
>
<
param-value
>
https://localhost:8443/cas/proxyValidate
</
param-value
>
</
init-param
>
<
init-param
>
<
param-name
>
edu.yale.its.tp.cas.client.filter.serverName
</
param-name
>
<
param-value
>
localhost:8082
</
param-value
>
</
init-param
>
</
filter
>
<
filter-mapping
>
<
filter-name
>
CASFilter
</
filter-name
>
<
url-pattern
>
/servlet/*
</
url-pattern
>
</
filter-mapping
>
将casclient.jar拷贝至.\casclient1\webapps\servlets-examples\WEB-INF\lib目录下。至此,cas客户端1部署完毕。启动cas客户1服务器,访问http://localhost:8082/servlets-examples/servlet/HelloWorldExample正常情况会弹出安全警报,点击确认后转向servlets-examples应用的HelloWorld页面(此时由于cas客户服务器已经登录,因此访问servlets-examples时无需再进行登录)。
cas服务器、客户端部署完成后即可实现统一认证服务。案例中把登录认证部分的逻辑从jsp-examples、servlets-examples应用(此应用系统并无登录逻辑,在实际应用中需修改相应的登录验证逻辑)中剥离,交由cas认证服务器完成。
以上配置在windows XP professional上测试通过。