耶鲁大学开发的CAS单点登录系统在SSO中应该说是比较有名的啦,既然也是开源的,我们为何不拿过来学习学习呢
很早之前的耶鲁的CAS开源包地址是在:http://www.yale.edu/tp/auth/
目前的CAS开源包都已经转移到新网址了,并且开源包里面的类名都没有以yelu开头了而是jasing
CAS客户端:http://downloads.jasig.org/cas-clients/
CAS服务器端:http://www.jasig.org/cas/download
我下载的都是目前最新版的cas-server-3.4.5服务器端和cas-client-3.2.0客户端
1)将cas-server-3.4.zip解压到一个目录,将cas-server-3.4.5\modules\cas-server-webapp-3.4.5.war拷贝到tomcat的webapp中去,并且改名为CasServer.war.启动tomcat
2)现在可以访问CAS应用了,当然要使用HTTPS加密协议访问,例如本问用到地址:https://javacrazyer.sso.com:8443/CasServer/login,现在打开了CAS服务器的页面输入admin/admin点击登录(CAS默认的验证规则只要用户名和密码相同就通过)
所以如果你看到下面的这张图片你就成功了
CAS服务器端深入应用,与数据库配置登录
首先打开tomcat/webapp/cas/WEB-INF/deployerConfigContext.xml文件,配置的地方如下:
- class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticat
ionHandler"> -
"dataSource" ref="dataSource" /> -
"sql" value="select password from t_admin_user where login_name=?" /> -
"passwordEncoder" ref="MD5PasswordEncoder"/> -
在文件的末尾结束之前加上如下
- <</span>bean
id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> -
<</span>property name="driverClassName"><</span>value>com.mysql.jdbc.Driver</</span>value></</span>property> -
<</span>property name="url"><</span>value>jdbc:mysql:///wsriademo</</span>value></</span>property> -
<</span>property name="username"><</span>value>root</</span>value></</span>property> -
<</span>property name="password"><</span>value>root</</span>value></</span>property> - </</span>bean>
-
- <</span>bean
id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"> -
<</span>constructor-arg index="0"> -
<</span>value>MD5</</span>value> -
</</span>constructor-arg> - </</span>bean>
com.mysql.jdbc.Driver jdbc:mysql:///wsriademo root root MD5
完整的deployerConfigContext.xml如下