结合cas官方文档及一篇中文教程,搭建单点登录的完整实例。 官方配置文档,配置的每一步描述都很详细,不过各软件版本较旧,文档中给出的有些链接已经失效。 https://wiki.jasig.org/display/casum/demo small_love的中文教程很精炼 http://blog.csdn.net/sm
结合cas官方文档及一篇中文教程,搭建单点登录的完整实例。
官方配置文档,配置的每一步描述都很详细,不过各软件版本较旧,文档中给出的有些链接已经失效。
https://wiki.jasig.org/display/casum/demo
small_love的中文教程很精炼
http://blog.csdn.net/small_love/article/details/6664831
系统环境 – windows 7 32
下面是详细的配置过程:
由于某些网络原因,cas官方网站(www.jasig.org/cas)无法访问,故将文中涉及到的各软件版本及下载地址列出
tomcat 6.0.37
http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.37/bin/
cas-server 3.5.2
http://downloads.jasig.org/cas/
cas-client 3.2.1
http://downloads.jasig.org/cas-clients/
以上给出的仅为软件所在的目录,请根据自身需要下载相应的文件类型
1. jdk环境配置
不再赘述,请参考相关教程
cas-server-3.5需要jdk1.6以上的版本,本例jdk1.6.0_21
2. 使用jdk自带的keytool工具制作证书
如果将java_home加入了系统path变量,在任意目录dos命令窗口都可以直接执行命令;否则需要在cmd中切换到java工具目录(例如c:program filesjavajdk1.6.0_21bin)
// 生成证书并存储到自定义的证书库,输入的密码为证书库密码
keytool -genkey -alias tomcat -keyalg rsa -keystore c:/keystore
输入keystore密码:123456
再次输入新密码:123456
您的名字与姓氏是什么?
[unknown]:compa
您的组织单位名称是什么?
[unknown]:it
您的组织名称是什么?
[unknown]:inc
您所在的城市或区域名称是什么?
[unknown]:sz
您所在的州或省份名称是什么?
[unknown]:js
该单位的两字母国家代码是什么
[unknown]:cn
cn=compa, ou=it, o=inc, l=sz, st=js, c=cn 正确吗?
[否]:是
输入的主密码
(如果和 keystore 密码相同,按回车):回车
// 从自定义证书库中导出证书文件,密码为自定义证书库的密码
keytool -export -file c:/server.crt -alias tomcat -keystore c:/keystore
输入keystore密码:123456
保存在文件中的认证
// 将证书导入jdk证书库中,此处要求输入的密码是jdk的证书库密码,默认为changeit
keytool -import -keystore “%java_home%jrelibsecuritycacerts” -file c:/server.crt -alias tomcat
输入keystore密码:changeit
所有者:cn=compa, ou=it, o=inc, l=sz, st=js, c=cn
签发人:cn=compa, ou=it, o=inc, l=sz, st=js, c=cn
序列号:52564247
有效期: thu oct 10 13:59:35 cst 2013 至wed jan 08 13:59:35 cst 2014
证书指纹:
md5:4d:9a:fe:3e:cb:72:cf:fc:00:ff:74:96:0c:24:22:2d
sha1:9e:61:59:ff:27:a2:3b:ea:58:06:31:f9:5b:ba:c4:fa:d8:1d:62:6b
签名算法名称:sha1withrsa
版本: 3
信任这个认证? [否]: 是
认证已添加至keystore中
如果出现错误,可能是jdk的证书库密码已经修改过了,如果不知道密码,需要删除%java_home%jrelibsecuritycacerts文件,再重新导入证书,此时会自动新建一个证书库,会要求设置证书库的密码
keytool错误: java.io.ioexception: keystore was tampered with, or password was incorrect
修改证书库密码可以使用下面的命令
c:usersflyash>keytool -storepasswd -keystore “%java_home%jrelibsecuritycacerts”
3. 配置cas服务器
安装tomcat 6.0.37,此处不再展开,请参考tomcat安装的相关说明教程。
解压下载的cas-server-3.5.2,将modules文件夹下的cas-server-webapp-3.5.2.war复制到tomcat的webapps目录下并重命名为cas.war
修改tomcat的conf目录下的server.xml文件,去掉ssl在8443端口配置的注释,修改后的配置如下
?view code xml
启动tomcat,访问https://localhost:8443/cas/可以看到cas的登录页面,浏览器会提示证书不受信任,忽略或者添加例外即可。
4. 配置cas客户端
本例中cas客户端和服务端使用同一个tomcat,仅用于演示,实际使用中,一般客户端与服务端分属于不同的tomcat(服务器)中。
解压下载的cas-client-3.2.1,将modules文件夹下的cas-client-core-3.2.1.jar和commons-logging-1.1.jar复制到tomcat下的webappsexamplesweb-inflib目录。
修改tomcat的webappsexamplesweb-inf下的web.xml文件,增加cas过滤器,这里cas服务器的地址不能是localhost,此处通过修改host文件自定义域名指向本机
?view code xml
casfilter org.jasig.cas.client.authentication.authenticationfilter casserverloginurl https://compa:8443/cas/login servername http://localhost:8080 casfilter /servlets/servlet/helloworldexample cas validation filter org.jasig.cas.client.validation.cas20proxyreceivingticketvalidationfilter casserverurlprefix https://compa:8443/cas servername http://localhost:8080 cas validation filter /servlets/servlet/helloworldexample org.jasig.cas.client.session.singlesignouthttpsessionlistener cas single sign out filter org.jasig.cas.client.session.singlesignoutfilter cas single sign out filter /servlets/servlet/helloworldexample cas httpservletrequest wrapper filter org.jasig.cas.client.util.httpservletrequestwrapperfilter cas httpservletrequest wrapper filter /servlets/servlet/helloworldexample cas assertion thread local filter org.jasig.cas.client.util.assertionthreadlocalfilter cas assertion thread local filter /servlets/servlet/helloworldexample修改host文件,增加一行,注意域名(主机名)小写
127.0.0.1 compa
重启tomcat,访问http://localhost:8080/examples/servlets/servlet/helloworldexample,会跳转到cas登录页面
输入用户名及密码admin,登录成功后返回到hello world页面
相关文章
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!