1 使用软件包,cas-client-3.1.10 cas-server-3.3.5 ,apache-tomcat-6.0.20
2 服务端的安装:
按照提示来:
输入keystore密码:123456
再次输入新密码:123456
您的名字与姓氏是什么?
您的组织单位名称是什么?
您的组织名称是什么?
您所在的城市或区域名称是什么?
您所在的州或省份名称是什么?
该单位的两字母国家代码是什么
CN=localhost, OU=
gxcx
software ltd., O=
gxcx, L=beijing,
ST=beijing, C=cn 正确吗?
输入<mykey>的主密码
在当前目录下可以找到一个文件:server.keystore,其中就包含了自签名的证书。
在%TOMCAT_HOME%目录下新建目录keystore,并拷贝server.keystore到其目录下
修改%TOMCAT_HOME%/conf/server.xml文件。添加https的Connector。
<Connector
注意:
件。
访问https://localhost:8443/,提示有不安全的证书,接受证书,看到可亲的tom猫
至此SSL协议配置结束。
2、搭建CAS的服务端
4.1
CAS在tomcat上的发布
1)将下载的server包解压
2)将解压包内的modules文件夹下的cas那个war文件,cas-server-webapp-3.3.5.war 拷贝到 tomcat的 webapps 目录,并更名为 cas.war
可以重新启动 tomcat,然后访问:https://localhost:8443/cas ,如果能出现
正常的 CAS 登录页面,则说明 CAS Server 已经部署成功。
5、搭建CAS客户端
密钥的交换。
1)
服务端密钥的导出
keytool -export -file client.cert -alias mykey -keystore
server.keystore
2)
客户端密钥的导入
将导出的client.cert密钥copy到客户端机器上在客户端机器上运行
keytool -import -trustcacerts -file client.cert -keypass changeit -
keystore "%JAVA_HOME%/jre/lib/security/cacerts" -alias mykey1
在tomcat 下面新建目录,casclient
在web-inf/lib下面加入cas-client-3.1.10的jar.
我这里用了spring 还加入了spring的相关类:
我这里是如下类;
spring-security开头的可以不要。
配置文件我附件贴在后面。web.xml
/WEB-INF/classes/spring-appContext.xml 我也贴在后面。
启动后,你访问 http://localhost:8080/secure/目录就会重定向到cas单点登录服务器上,需要你登录以后再访问。
cas缺省的用户名/密码是admin/admin
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
<context-param>
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSession
Listener</listener-class>
</listener>
<listener>
</listener>
<filter>
</filter>
</filter>
<filter-mapping>
</filter-mapping>
</web-app>
spring-appContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
<bean id="casAuthenticationFilter"
<bean id="casValidationFilter"
</beans>
secure 下面的测试页面 index.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%@ page contentType="text/html; charset=UTF-8" %>
<head>
<body>
<%="Hello"%>
你登录了;;<%= request.getRemoteUser() %>
</body>
</html>
可以用 request.getRemoteUser()获得用户登录名。