哈哈,吼吼,这是个好地方
没有风雨躲的过, 没有坎坷不必走……
BlogJava
首页
新随笔
联系
聚合
管理
posts - 21, comments - 23, trackbacks - 0
2008年3月25日
cas配置之初体验
今天花了一个下午的时间,终于完成的cas配置的一次完整的运行。cas前世今生我就不介绍了,有兴趣的朋友谷歌或是百度一下就可以有很详细的了解了,重点记录一下今天的配置过程和遇到的问题及解决方法。
环境:浏览器(ie6.0,windows xp)
cas server 在一台Linux服务器,cas client在另外一台linux服务器
应用服务器为tomcat5.5.26
初步的配置实用过程参考了http://www.blogjava.net/yida/archive/2007/04/03/55466.html的描述,各位亦可以访问阿木的blog。整理如下:
1.请下载到cas的官方网站下载cas-server(我用的是3.2)和cas-client(2.0.11),tomcat5.5.26
cas的官方网站:http://www.ja-sig.org/products/cas/
2.安装cas-server,我们假定安装cas-server的服务器为server1
(
1)请在server1服务器上安装好jdk1.5或以上版本的jdk,tomcat5.5.26,并配置环境变量JAVA_HOME
(2)将cas-server-3.2-release.zip解压,将moudels目录下cas-server-webapp-3.2.war拷贝到tomcat的webapps目录下,修 改名称为cas.war.
(3)生成server1的安全证书:
keytool -genkey -alias my-alias-name -keyalg RSA -keystore keystore-file
(4)在server1
配置https
在
$CATALINA_HOME/conf/server.xml里修改为一下配置
<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"
keystoreFile="/path/keystore-file" keystorePass="your-password"
/>
(5)导出server1的证书,
用来给所有需要用到的客户端导入
keytool -export -file myserver.cert -alias my-alias-name -keystore keystore-file
(6)将导出的证书上传的client1服务器上。
(7)启动server1上的tomcat,检验cas配置是否成功,访问http://ip:8443/cas/login,如果能看到cas的登录页面则表示配 置成功。
3.
配置 cas-client,我们以tomcat下自带的servlet-example为例子进行说明
(1)
请在client1服务器上安装好jdk1.5或以上版本的jdk,tomcat5.5.26,并配置环境变量JAVA_HOME
(2)
将cas-client-2.0.11.zip解压,把java/lib/casclient.jar拷贝到client1服务器上的
webapps/servlets-examples/WEB-INF/lib目录下(如果没有就建一个)
(3)
在要使用CAS的客户端client1里设置(以servlets-examples这个APP为例),我们使用ServletFilter(CAS client里提供 的)来实现SSO的检查,
修改servlets-examples/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://your.cas.server.name(eg:server1):port/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://your.cas.server.name(eg:server1):port/cas/proxyValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>your.client.server.name(eg:client1):port</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/servlet/*</url-pattern>
</filter-mapping>
(4)
在客户端的JVM里导入信任的SERVER的证书(根据情况有可能需要管理员权限)
keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file myserver.cert -alias my-alias-name
此时需要输入密码,默认密码为changeit
通过以上配置,基本完成cas-server和cas-client的配置,但是还有以下问题需要注意和解决
由于cas的证书需要域名才能正确的进行认证信息的交互,不支持ip,如果server和client在同一台机器上,可以使用localhost,如果像我们上面描述的三台服务器这样的环境,使用localhost或者ip是不能正常运行的。如果使用ip,运行时会抛出
HTTPS hostname wrong
的错误,解决的方法如下:
假设server1的ip为:192.168.10.1,client1的ip为192.168.10.2,开发机器(xp)的ip为:192.168.10.3
在server1和client1上设置本机的域名映射:
vi /etc/hosts 添加以下行
192.168.10.1 cas.server
在开发机器(xp)下,在C:\WINDOWS\system32\drivers\etc目录下,编辑hosts文件,添加以下行
192.168.10.1 cas.server
重新生成cas-sever的服务器端的证书,在
开始问“你的名字”或“
DName”的时候,必须填写你服务器所在域名(cas.server)
然后重新到处服务器器端的证书,并将其导入到client1服务器的jvm
最后修改
修改servlets-examples/WEB-INF/web.xml中关于cas过滤器的配置:请将your.cas.server.name(eg:server1)修改为cas.server即可。重新启动server1和client1的服务器上的tomcat就可正常运行。
ttp://client1:8080/servlets-examples/servlet/HelloWorldExample
系统会自动跳转到一个验证页面,随便输入一个相同的账号,密码,严正通过之后就会访问
到真正的HelloWorldExample这个servlet了
posted @
2008-03-25 18:05
雪地孤鸿 阅读(1109) |
评论 (0)
|
编辑
收藏
<
2008年3月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
appfuse(1)
java(7)
seam2.0学习笔记(1)
SPRING
sso(2)
STRUTS(1)
Sync4j(1)
SyncML(2)
工作日志(2)
开发工具(2)
生活感悟
随笔档案
2008年6月 (1)
2008年3月 (3)
2007年12月 (1)
2007年8月 (1)
2007年7月 (1)
2006年12月 (1)
2006年11月 (1)
2006年10月 (1)
2006年9月 (1)
2006年7月 (1)
2006年4月 (2)
2005年12月 (1)
2005年11月 (1)
2005年10月 (4)
2005年9月 (1)
文章档案
2005年9月 (1)
blog
eamoi之Coder日志
ajax
liferayPortal
steeven
sync4j
sync4j1
大胃
月亮的太阳
铁手剑谱
铁手
搜索
最新评论
1. re: 在tomcat下发布使用eclipse中的ant打包后的war文件[未登录]
谢谢了。
--Sam
2. re: jbossTools 创建seam2.0工程注意事项
http://www.zhougongjiemengda.cn
--王能
3. re: jbossTools 创建seam2.0工程注意事项
http://www.zhaomysf.com.cn
--魔域私服
4. re: jbossTools 创建seam2.0工程注意事项
学习。。。支持本站。
--比牛网
5. re: SyncML Intensive 继续
我刚开始做这个,有很多的英文协议,但是我的英文有限,不能很明确的理解其中的意思。所以希望你能多做点翻译。谢谢
--jinkin
阅读排行榜
1. linux+php5.1.6+mysql5.0.2+apache2.0.55安装配置说明:(1665)
2. 在tomcat下发布使用eclipse中的ant打包后的war文件(1500)
3. JForum 的 SSO集成的问题解决(1440)
4. cas配置之初体验(1109)
5. jdk1.4升级到JDK1.5的问题(1091)
评论排行榜
1. SyncML Intensive 继续(3)
2. jdk1.4升级到JDK1.5的问题(3)
3. jbossTools 创建seam2.0工程注意事项(3)
4. 在tomcat下发布使用eclipse中的ant打包后的war文件(2)
5. 找不到C.TLD的问题(2)