一个yale-cas实现单点登录的简单例子实现

Yale CAS (Central Authentication Service,中央认证服务)是耶鲁大学的一个开源项目。它为耶鲁大学的网络应用提供了一种标准的用户认证服务,从而实现了SSO的功能。
Yale CAS被设计成为一个独立的网络应用程序,它使用JavaS ervlet技术实现,可以作为用户身份认证模块加入到网络应用中。
他的实现的小例子,网上有很多版本,可是总是配置不成功,现在总结一下自己的配置过程。希望对各位网友有所帮助。
Tomcat5.5.9 
Jdk 1.5.0.1
按照如下的配置成功:
1首先我打开tomcat5.5的SSL
修改Tomcat配置文件server.xml,去掉对于SSL的注释,即开放8443端口,注意这里需要在connector字段中加入keystorePass="password"参数,password即为上面几步中涉及到的密码
2.生成安全证书
%java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA
密码是:changeit
姓名是:localhost
其他随便写的
之后是
%java_home%\bin\keytool -export -alias tomcat -file server.crt

%java_home%\bin\keytool -import -file server.crt -keystore %java_home%/jre/lib/security/cacerts

3.将CAS server3.0.2中target目录中的CAS.war复制到%tomcat_home%\webapps目录下.
4.将cas-client-java-2.1.1\dist\casclient.jar文件复制到%tomcat_home%\common\lib中
5.修改tomcat自带的servlet-examples的web.xml, 加入cas的过滤器:
<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:8080</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>CASFilter</filter-name>
    <url-pattern>/servlet/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

6.启动tomcat !,CAS.war文件被自动在webapps下释放出CAS目录
进入https://localhost:8443/servlets-examples, 被自动转发到CAS的登陆页面.

说明:
这篇实现原理并没有全部完成


在安装和配置CAS时, 我遇到了一个很尴尬的问题, 大家在用的时候要小心
我是按照下面这篇文章中提到的配置步骤进行配置的
http://www-128.ibm.com/developerworks/web/library/wa-singlesign/
注意:文章中直接给出了需要在web.xml中加入CAS filter的代码
大家注意这段;

edu.yale.its.tp.cas.client.filter.serverName
localhost

中的值是localhost, 这是绝对不行的!一定要加上端口号:如localhost:8443,否则当你在CAS登陆界面中输入完用户名和密码后,将无法redirect回你想要的app,你只能看到"无法显示该页"的错误页面!!

还有就是制作一个自签名的credential了, 在生成keystore文件的时候密码是:changeit(这是tomcat默认的),你的名字一 定要是:localhost,当然这是你需要把CAS client和CAS server放在同一台机器上进行测试用的.

你可能感兴趣的:(tomcat,Web,servlet,网络应用,SSO)