CAS服务需要SSL才能正常工作.由于resin3的开源版本不支持SSL,resin2虽然支持SSL,但太老,不支持一些新的标准,所以我们选用tomcat5为CAS服务器端server.CAS服务器端下载:http://www.ja-sig.org/products/cas/布署到tomcat下.
配置SSL,tomcat
1,在JDK目录下的bin目前下,运行:
keytool -genkey -alias tomcat -keyalg RSA
这时需要输入密钥密码和其他参数(第一个参数CN必须设置为CAS机器名或域名,如cas.7career.org测试),会在/root/下生成.keystore密钥文件。将.keystore拷到你tomcat的conf目录下,防止误删,便于后面配置文件的位置指定.
2. 导出密钥文件:
keytool -export -file server.crt -alias tomcat
这时需要输入上一步设定的密码,结果会在当前目录生成server.crt信任状。
3. 为客户端的JVM导入密钥:
keytool -import -keystore $JAVA_HOME\jre\lib\security\cacerts -file server.crt -alias tomcat
输入密码时注意密码为"changeit".
如果之前已经配置过同名的tomcat别名,要先删掉cacerts文件.
4.修改tomcat配置文件server.xml
去掉有关SSL的那一段的注释,并做相关修改:
<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystorePass="第1步中的密码" keystoreFile="conf/.keystore"/>
此时,启动tomcat,访问https://ip:8443/cas 看是否正常.
修改CAS验证程序
修改deployerConfigContext.xml配置文件:
<property
name="authenticationHandlers">
<list>
<bean
class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
/>
<bean class="org.jasig.cas.authentication.handler.support.YourAuthenticationHandler"
/>
</list>
</property>
在org.jasig.cas.authentication.handler.support包中添加一个继承AbstractUsernamePasswordAuthenticationHandler的类YourAuthenticationHandler,实现具体的用户名/密码认证
修改CAS登录页面
CAS登录页面在/WEB-INF/default/ui需要修改的页面主要是
登录页面:casLoginView.jsp
登出页面:casLogoutView.jsp
登录成功页面:casGenericSuccess.jsp
关于用Acegi做为cas认证客户端的例子,可以参考
http://blog.csdn.net/HuDon/archive/2007/02/06/1503506.aspx

受关注文章