浏览 18508 次
锁定老帖子 主题:一个简单实际可用的CAS配置日志
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-10
最后修改:2009-02-02
1 目的
撰写本文的目的是记录一个简单、以数据库为验证用户的单点登陆的CAS配置过程,看过其他文档,要么没有配置过程,要么过于复杂。配置之前建议先仔细研究下相关的参考文档,只有明白了相关原理,配置起来其实很简单。
2 名词解说
Single Sign On - 通过用户登录一次,即可获得需访问系统和应用软件的授权。
Yale CAS - 耶鲁大学开发的单点登录(Single Sign On)系统称为CAS(Central Authentication Server)被设计成一个独立的Web应用程序(cas.war)。
3 参考
Keytool使用指南:
Tomcat-ssl配置指南:
Cas文档:
4 安装环境
WINXP + JDK1.5 + Tomcat 5.5.30 + CAS Server 3.0.7 + Yale CAS Client 2.1.1
5 配置过程
5.1 安装和配置Tomcat的SSL
参考以下帖子-Tomcat SSL配置大全:
5.2 配置CAS服务器端
解压 cas-server-3.0.6.zip,把 \target\cas.war copy 到 %CATALINA_HOME%\webapps\ 下
5.3 配置CAS 客户端
我们要将tomcat的jsp-examples 及servlets-examples2个应用全部经过SSO的验证,CAS缺省验证方式的类是:org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler
这种配置只是用于测试目的,只要用户名和密码相同就可以验证通过了。
5.3.1 配置应用servlets-examples
修改<!---->\webapps\servlets-examples\WEB-INF\web.xml
在 servlet 及 servlet-mapping 中间加上以下设置: xml 代码
注: edu.yale.its.tp.cas.client.filter.serverName 是表示需要 redirect 的网址,如果有1个以上的网址, 则可以一直增加上去,注意 param-name 要不一样
edu.yale.its.tp.cas.client.filter.loginUrl 是 redirect 的网址。
5.3.2 配置应用jsp-examples
修改%CATALINA_HOME%\webapps\jsp-examples\WEB-INF\web.xml在 servlet 及 servlet-mapping中间加上以下设置:
xml 代码
注: jsp-examples,和 servlets-examples 基本上大同小异,唯一不一样就是 filter-mapping 的 url-pattern,jsp-examples 是 /*,servlets-examples 是 /servlet/*。
5.3.3 设置需要用到的cas-client库
将casclient-2.1.1.zip改名为casclient-2.1.1.jar, copy 到jsp-examples 及 servlets-examples的lib下。
5.4 测试配置
启动tomcat,访问如下地址:
这时,系统会提示你将要访问的是加密网站,并问你接受该网站提供的证书,点接受后,将显示CAS单点登陆页面,地址变成如下:
输入任意的用户名,密码和用户名相同就可以进入刚才要访问的页面。
这时再访问servlets-examples 应用下面的任一个servlet,如:
访问后,你会发现地址栏的地址变为:
后面增加了?ticket=ST-3-6EuKFN4M2aLj9cVup6sABykzheEnAnY3Zmb-20,这就是CAS的ticket(票据)
刚才我们其实配置了2个应用都是需要验证用户的,如果用户先访问servlets-examples应用下面的servlet,同样会提示登陆,再访问jsp-examples,也不会提示登陆了,说明我们的单点登陆配置成功。5.5 配置CAS通过数据库验证用户
CAS缺省配置只是用于测试目的,实际应用中,通过数据库进行验证用户最为常见,所以,我们现在测试通过数据库验证用户。先停止tomcat.
5.5.1 创建数据库表
我们测试使用的是oracle数据库,可以选用任何一个支持JDBC的数据库。用scott/tiger登陆sqlplus,输入如下语句创建用户表和输入测试数据:
create table app_user(username varchar(100), password varchar(100));
insert into app_user values('tomcat', 'tomcat');
insert into app_user values('cas', 'cas');
commit;
5.5.2 修改CAS 服务器端配置
修改%CATALINA_HOME%\webapps\cas\WEB-INF\ deployerConfigContext.xm把以下的程序代码屏蔽掉:
xml 代码
在同一地方加上以下程序代码: xml 代码
定义 dataSource bean,注意,配置的地方应该在之前,不要放错了位置,不是和以上验证bean放在一起。 xml 代码
5.5.3 添加CAS 服务器需要用到的jar
把 cas-server-3.0.6.zip里的 \target\cas-server-jdbc-3.0.6.jar copy 到%CATALINA_HOME%\webapps\cas\WEB-INF\lib下。
把 Oracle jdbc jar即ojdbc14.jar copy到%CATALINA_HOME%\webapps\cas\WEB-INF\lib下。
5.5.4 再次测试
启动tomcsat,重复刚才的测试,哈哈,输入tomcat/tomcat,可以了。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-10
哈哈 我一直在看的
要跟着你学习 |
|
返回顶楼 | |
发表时间:2007-05-10
没有使用过,不知道能不能结合hibernate+struts+spring+agcei开发的项目使用
|
|
返回顶楼 | |
发表时间:2007-05-10
这个网页编辑器实在是难用,格式很难调整到美观,发了一个帖子竟然用了半个小时。费尽啊,希望博客管理员能够进行改进。
|
|
返回顶楼 | |
发表时间:2007-05-10
辛苦你了!
|
|
返回顶楼 | |
发表时间:2007-05-10
talangniao 写道 没有使用过,不知道能不能结合hibernate+struts+spring+agcei开发的项目使用
百分百没有问题,只要替换CAS client成acegi就可以了。请参考acegi文档,或者Spring in Action这本书。我一直担心的是acegi的效率不是很高,我有次性能测试,acegi+webwork,发现这种方式过滤器调用的层次太深,调用了几十次,才到我们的页面,至少有1/3时间浪费在过滤器上面了。 |
|
返回顶楼 | |
发表时间:2007-05-10
生成crt key?可以在其他的服务器使用?
|
|
返回顶楼 | |
发表时间:2007-10-24
这个测试我也做过,证书那个是个大问题,网上用户可不原意点那个钮啊!不知道博主怎么解决这个问题
|
|
返回顶楼 | |
发表时间:2007-11-05
证书部分太长,只能单独放置!放在一起显得文章太长了。如果用户不愿意点,那说明他对这个不感兴趣,呵呵!
|
|
返回顶楼 | |