日期:2014-05-16  浏览次数:20637 次

CAS在Tomcat中实现单点登录[jdbc验证用户信息]

一.开发准备:
环境:
OS:windows xp
IDE:myeclipse 6.0
web服务器:tomcat 6.0
JDK: jdk1.6.0_05
数据库:mysql 6.0
准备:
cas-client-java-2.1.1.zip
http://www.ja-sig.org/downloads/cas-clients/ cas-client-java-2.1.1.zip ? [建议使用迅雷下载]
cas-server-3.3.1-release.zip
http://www.ja-sig.org/downloads/cas/ cas- server-3.3 .1- release .zip [建议使用迅雷下载]
其他所需jar文件:
/Files/arix04/need.part1.rar
/Files/arix04/need.part2.rar

?

二.开发步骤:
1.修改本机域名:
大家都知道使用 http://localhost:8080/ 就可以访问本机web服务,这里的localhost其实就是一个ip,域名映射,我们可以设置自己的本机域名,
在C:\WINDOWS\system32\drivers\etc下面找到hosts文件,用文本打开,加上一行:
127.0.0.1? http://www.test.com/
这样修改后,我们启动tomcat服务后,就可以使用 http://www.test.com:8080/ 来访问了。
这步是为了写cookie做准备,使用localhost是无法写入cookie的,不过这个demo中似乎不该也行,看个人吧,因为我写另外一个sso例子的时候这里需要修改域名,所以就把这步写一下。

2.证书生成及导入,使用jdk自带的keytool工具来生成证书
首先打开cmd,cd到自己的%JAVA_HOME%\jre\lib\security目录下
比如我的是默认目录:
C:\Program Files\Java\jdk1.6.0_05\jre\lib\security
然后执行命令(蓝色是注释不用执行):

下面2行是删除已经存在的证书,如果没有也不影响
keytool -delete -alias tomcatsso -keystore cacerts -storepass changeit 
keytool -delete -alias tomcatsso -storepass changeit
keytool -list -keystore cacerts -storepass changeit 
下面这行要注意,cn要改成你的本机域名,我的如下:
keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=www.test.com" -storepass changeit
这里要求输入密码,2次输入一致就OK了
keytool -export -alias tomcatsso -file tomcatsso.crt -storepass changeit
keytool -import -alias tomcatsso -file tomcatsso.crt -keystore cacerts -storepass changeit
keytool -list -keystore cacerts -storepass changeit 

?把上面的命令都执行一遍就OK了,建议一行一行的执行,避免出错。如果成功的话,
你会在C:\Documents and Settings\当前用户[我的是C:\Documents and Settings\Administrator] 目录下发现.keystore文件,
在%JAVA_HOME%\jre\lib\security目录下发现tomcatsso.crt,如果这2个文件都存在的话,那么恭喜你,证书已经导入 成功了。

3.在tomcat中加上对s