由于本人也是不断偿试的新手,很多网上的内容都缺这少那,在配置过程中走了不少弯路,于是本人走到哪一步就会贴出哪一步.有经验的朋友也可告诉我更详细的内容.有误的地方请指证
我的CAS使用及配置
tomcat 5.5.27 配置会不一样
cas-server-3.0.5.zip 下载地址http://www.ja-sig.org/downloads/cas/cas-server-3.0.5.zip
cas-client-java-2.1.1.zip 下载地址http://www.ja-sig.org/downloads/cas-clients/cas-client-java-2.1.1.zip
cas-server-release 下载地址http://www.ja-sig.org/downloads/cas/cas-server-3.1.1-release.zip
第一步安装SSL证书
我的tomcat是在E:\zy\tomcat5.5 用$t_home$代替
开始==>cmd==>进入到$t_home$下,命令如下
E:\zy\tomcat5.5>keytool -genkey -alias casserver -keypass changeit -keyalg RSA -keystore server.keystore
输入keystore密码:##输入changeit
再次输入新密码: ##输入changeit
您的名字与姓氏是什么?
[Unknown]: localhost ##这里是输入域名或者IP,如果是本机就输入localhost,这个必填
您的组织单位名称是什么?
[Unknown]: 1 ##数字是自己填写,你可以填自己的,也可不填,回车跳过
您的组织名称是什么?
[Unknown]: 2
您所在的城市或区域名称是什么?
[Unknown]: 3
您所在的州或省份名称是什么?
[Unknown]: 4
该单位的两字母国家代码是什么
[Unknown]: 5
CN=localhost, OU=1, O=2, L=3, ST=4, C=5 正确吗?
[否]: y
这步结束后,就会在$t_home$下看到server.keystore文件
第二步导出证书
E:\zy\tomcat5.5>keytool -export -alias casserver -keypass changeit -file server.crt -keystore server.keystore
输入keystore密码:##输入changeit
保存在文件中的认证 <server.crt>
这步结束后,就会在$t_home$下看到server.crt文件
第三步导入到受权证书中
E:\zy\tomcat5.5>keytool -import -alias casserver -file server.crt -keypass changeit -keystore cacerts
注意:我这里是在$t_home$生成一个cacerts文件,然后拷贝到$java_home$/jre/lib/security/文件夹下
输入keystore密码:##输入changeit
再次输入新密码: ##输入changeit
所有者:CN=localhost, OU=1, O=2, L=3, ST=4, C=5
签发人:CN=localhost, OU=1, O=2, L=3, ST=4, C=5
序列号:4a44785d
有效期: Fri Jun 26 15:27:25 CST 2009 至Thu Sep 24 15:27:25 CST 2009
证书指纹:
MD5:AC:D8:48:5B:A7:8C:52:9D:F9:49:B5:58:47:10:B5:53
SHA1:4F:01:AD:17:CE:F3:B8:D8:81:E4:47:23:48:AC:24:01:FD:FB:7C:FA
签名算法名称:SHA1withRSA
版本: 3
信任这个认证? [否]: y
认证已添加至keystore中
这步结束,就会在$t_home$下看到cacerts
第四步将cacerts拷贝至$java_home$下
要仔细查看你的$java_home$指向的是哪个jdk安装文件夹,有的人在机器上装了多个jdk,所以一定要看清楚
将cacerts文件拷贝到$java_home$/jre/lib/security/文件夹下
第五步布署CAS服务端
将cas-server-3.0.5.zip解压,把target目录下的cas.war包拷贝至$t_home$/webapps文件夹下
第六步配置tomcat的server.xml
打开$t_home$/conf/server.xml文件
找到<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
下面通常会有一段注释掉的配置
<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"/>
去掉注释,然后修改为
<Connector port="8443" maxHttpHeaderSize="8192"
protocol="org.apache.coyote.http11.Http11Protocol" **增加的
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="server.keystore" keystorePass="changeit"/> **增加的
这里是你的server.keystore文件和输入的认证密码changeit
注意:这是tomcat5.5.20的修改代码,其版的tomcat修改略有不同,我没有测试其它版,请自己测试
*****************************tomcat4.1.34配置
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8443" enableLookups="true" scheme="https" secure="true"
acceptCount="100" useURIValidationHack="false" disableUploadTimeout="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="server.keystore" keystorePass="changeit"/>
*****************************tomcat5.5.9配置
<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="server.keystore"
keystorePass="changeit"/>
*****************************tomcat6.0.10配置
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:/tools/apache-tomcat-6.0.10/server.keystore"
keystorePass="changeit"/>
tomcat6支持3种配置,有兴趣请查看http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
第七步测试服务端
打开浏览器https://localhost:8443/cas看看是否已经显示登录页面
第八步配置客户端(即子系统)
我们以Tomcat下的jsp-examples与servlets-examples为单点登录系统的子系统
打开两个项目中的web.xml文件在第一个<filter>前面加上如下内容
<!-- CAS test zy -->
<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://localhost:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://localhost:8443/cas/proxyValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>localhost:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- CAS test End-->
如果这段代码你无法看懂,请参阅其他资料
添加完后保存web.xml文件。然后拷贝cas-client-java-2.1.1\dist下的casclient.jar包进入两个系统的lib目录下
第九步建立登录数据库用户表
打开MySql数据库,我的数据库用户名及密码是root/root。
建立新的数据库test
建立用户表users,有两个字段username与password,主键为username
插入一条记录用户名密码为:zy/zy
第十步配置数据库文件
打开Tomcat下的cas项目,打开deployerConfigContext.xml文件
找到<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
这一行,然后注销掉,紧跟着其下面,添加这样一段代码
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select password from users where username=?" />
<property name="dataSource" ref="dataSource" />
</bean>
用来指定查询的数据源,并指定查询登录用户的语句
然后,添加一个新bean,上面我们指定的数据源为dataSource,现在就来定义这个数据源
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<property name="url"><value>jdbc:mysql://localhost:3306/test</value></property>
<property name="username"><value>root</value></property>
<property name="password"><value>root</value></property>
</bean>
这一步应该都是知道是什么意思,那么要注意的是它写的位置。
deployerConfigContext.xml文件的root标签是<beans>
所以数据源的这个新的<bean>应该写在<beans>下,请认真思考这个部分,不然会报错
如此,数据库也配置完成了。
第十一步添加依赖包
依赖包都需要添加到tomcat的cas项目下,包括以下包:
cas-server-support-jdbc-3.1.1.jar,在cas-server-release.zip下的module文件夹里可以找到
mysql-connector-java-5.1.6-bin.jar,Mysql的驱动包
DataStore需要三个包
commons-collections-3.2.jar,commons-dbcp-1.2.1.jar,commons-pool-1.3.jar
这三个包可以在Apache网站下载,也可以在www.jarbao.com中去搜索下载
包全部导入后即完成基本配置
第十二步测试使用
启动tomcat,查看有无报错,在无报错的情况下。
http://localhost:8080看是否出现三角猫
然后http://localhost:8080/jsp-examples查看是否进入登录页面
暂时不登录再进入http://localhost:8080/servlets-examples查看是否也跳入登录页面
一切顺利则说明,当进入这两个子系统时,都会检查是否有cookies票,如果没有即表示没有登录,即进入登录页面。
接下来登录,mysql数据库用户表users里的记录是zy/zy,输入用户名密码登录
正常登入一个子系统,这时再按照上面进入另外一个子系统,则不需要再登录。
如此,CAS的配置及使用正式告一段落。
新增一个子系统只需要两步
将子系统的web.xml配置上我们前面配置过的内容
将casclient.jar包放入子系统的lib文件夹下即可
随着单点登录的进一步深入,将继续发贴
以上是个人理解,发文主要为个人记忆及学习使用
分享到:
相关推荐
在本案例中,重点是将CAS与Tomcat应用服务器集成,实现Linux环境下的单点登录。 首先,了解CAS的基本工作原理:用户尝试访问受保护的资源时,会被重定向到CAS服务器进行身份验证。如果验证成功,CAS会返回一个票据...
这一步对于 Tomcat 的 SSL 配置不是必须的,但对于 CAS SSO 是必须的。否则将出现错误。 首先,需要导出证书: `keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -...
根据给定文件“cas使用配置.txt”的标题、描述、标签以及部分内容,我们可以提炼出一系列关于CAS(Central Authentication Service)在IT环境中的配置与部署的重要知识点。以下是对这些知识点的详细阐述: ### CAS...
总结来说,配置CAS单点登录涉及多个环节,包括SSL证书的生成与配置、CAS服务器的部署、用户验证逻辑的定制以及最终的测试验证。每一步都需要仔细操作,并确保所有配置正确无误,才能实现可靠的单点登录功能。
在使用CAS统一认证服务的过程中,由于Web应用工程中`web.xml`配置的CAS地址是固定的,而非动态地址,这就导致了当将Web应用服务器如Tomcat的端口映射到外网后,虽然可以通过外网访问应用,但在尝试登录时,应用会...
在提供的压缩包中,包含了"我的CAS配置测试流程"文档,详细记录了配置和测试的每一步,包括可能遇到的问题和解决方案。这个文档对于初学者来说是一份宝贵的参考资料,避免了在网上搜索和尝试过程中可能遇到的困扰。 ...
- 这段配置指定了CAS Filter的具体实现类以及CAS Server的地址信息。通过这样的配置,客户端应用程序就能与CAS Server进行交互了。 #### 结论 CAS作为一款成熟的开源SSO框架,为开发者提供了简单易用且高度可定制...
CAS的配置主要涉及到修改`deployerConfigContext.xml`文件,该文件位于Tomcat的`webapps/cas/WEB-INF`目录下。 1. **配置认证处理器**: 首先,你需要在`<property name="authenticationHandlers">`节点下,注释掉...
此文档自己亲手从0开始一步一步配置的详尽过程,其中包括keytool创建 、ticket、tomcat配置cas、自定义登录页面,处理服务器返回的乱码,服务退出、cas服务器返回多数据等等文档 包括SSO原理图,以及认证流程图等
此文档自己亲手从0开始一步一步配置的详尽过程,其中包括keytool创建 、ticket、tomcat配置cas、自定义登录页面,处理服务器返回的乱码,服务退出、cas服务器返回多数据等等文档
9. **部署与发布**:最后,了解如何将修改后的CAS服务器部署到生产环境,如Tomcat或Jetty等应用服务器,也是重要的一步。 通过这个项目,你不仅能够学习到如何自定义CAS登录页面,还能深化对SSO系统、Web开发以及...
2. **修改Tomcat配置文件** 接下来,需要修改Tomcat的`server.xml`配置文件。具体来说,需要取消以下配置段的注释,并添加SSL相关设置: ```xml maxThreads="150" scheme="https" secure="true" clientAuth...
这一步通常涉及配置Cas客户端的元数据,如Cas服务器的URL、服务验证URL等,并设置应用的信任Cas服务器。 3. **用户请求处理**:当用户尝试访问受保护的资源时,客户端会拦截请求并重定向到Cas登录页面。如果用户未...
本教程详细介绍了如何配置CAS服务器和客户端应用,以实现单点登录功能。 首先,教程涵盖了创建和管理SSL证书的过程,这对于保证通信安全至关重要。使用JDK自带的`keytool`工具生成RSA算法的私钥和证书,这一步骤中...
总之,“SSO之CAS单点登录详细图文教程.zip”是一个全面的指南,它将引导你通过每一步操作,实现CAS服务端和客户端的集成,最终搭建起一个可靠的SSO系统。在阅读文档和实践操作的过程中,你将深入理解SSO的工作原理...
在IDP服务器上的Tomcat配置文件`server.xml`中,需要添加以下配置来启用HTTPS端口,并指定密钥库文件和密码: ```xml maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" ...