利用CAS实现SSO技术

1 安装
1.1系统配置
以下的软件环境是必需的:
1. JDK 1.5.0.6
2. Tomcat 5.X

1.2 Tomcat 配置,启用SSL
1. 在要安装CAS的机器上为Tomcat生成用于SSL通讯的密钥:

keytool -genkey -alias tomcat -keyalg RSA

这时需要输入密钥密码和其他参数(第一个参数CN必须设置为CAS机器名,本机使用zhangyp.com测试),会在用户目录中生成.keystore密钥文件。

2. 导出密钥文件:

keytool -export -file server.crt -alias tomcat

这时需要输入上一步设定的密码,结果会在当前目录生成server.crt信任状。

3. 为客户端的JVM导入密钥:

keytool -import -keystore D:/jdk1.5.0_06/jre/lib/security/cacerts -file server.crt -alias tomcat

输入密码时注意密码为"changeit "。

4. 修改服务端Tomcat配置文件,启用SSL。修改$CATALINA_HOME/conf/server.xml,去掉有关SSL的那一段的注释,

需要在connector字段中加入keystorePass="password"(password即为1、2步中的密码),

keystoreFile= "keystorePath"(可以把第一步生成的.keystore复制到$CATALINA_HOME/conf下,这样keystoreFile= "conf/.keystore")。

5. 重启Tomcat,测试https://zhangyp.com:8443 是否可以访问。

1.3 CAS Server安装

下载CAS Server 3.0.4,将其中的cas.war复制到$CATALINA_HOME/webapps下,当然现在CAS中的用户密码认证Handler是很简陋的,产品化必须重写这部分代码,生成新的cas.jar。

这时可以通过访问https://zhangyp.com:8443/cas 测试CAS是否成功部署,应看到CAS登陆界面。

1.4 CAS Client 部署

利用Tomcat自带的servlets-examples ($CATALINA_HOME/webapps/servlets-examples)和jsp-examples($CATALINA_HOME/ webapps/jsp-examples)进行试验,下载最新版本的Java CAS Client,将casclient.jar复制到这两个项目的WEB-INF目录的lib下。修改两个项目的WEB-INF/ web.xml,添加如下的过滤器:

代码

<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://zhangyp.com:8443/cas/login</param-value>

	</init-param>
	<init-param>
		<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
		<param-value>https://zhangyp.com:8443/cas/proxyValidate</param-value>

	</init-param>
	<init-param>
		<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
		<param-value>zhangyp.com:8080</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>CASFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

 2 测试
重启Tomcat,定位到servlets-examples,执行任何一个例子都会被重定向到CAS登陆页;再定位到jsp-examples,也会被重定向到CAS登陆页;
此时登陆(默认的认证Handler只要求username=password,可任意选择用户名);
登录后就会进入jsp-examples;继续定位到servlets-examples,执行任何一个例子也不用再输入密码。

你可能感兴趣的:(利用CAS实现SSO技术)