出自:http://www.blogjava.net/oksonic/archive/2007/04/02/107854.html
一.环境
a) Windows 2003 sp1
b) JDK<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">1.5.0</st1:chsdate>_11
c) Tomcat <st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">5.5.23</st1:chsdate>
d) MySql5.0
二.准备
a) cas-server-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">3.0.6</st1:chsdate>.zip 下载地址:http://www.ja-sig.org/products/cas/index.html
b) cas-client-java-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">2.1.1</st1:chsdate>.zip 下载地址:同上
c) 安装完jdk和jre后,需要配置JAVA_HOME和PATH=%JAVA_HOME%\bin
三.步骤
a) 配置Tomcat使用SSL安全认证
i. 使用命令提示符进入到Tomcat安装目录 b) 配置客户端应用
ii. 生成服务端密匙,执行以下命令
keytool -genkey -alias 别名keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
例:keytool -genkey -alias casserver -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
运行后出现提示信息:
输入keystore密码:changeit 这里也填入主机名
您的名字与姓氏是什么?
[Unknown]: localhost 这里一定要填写正确的主机名
您的组织单位名称是什么?
[Unknown]: oksonic
您的组织名称是什么?
[Unknown]: oksonic
您所在的城市或区域名称是什么?
[Unknown]: <st1:place w:st="on"><st1:city w:st="on">kunming</st1:city></st1:place>
您所在的州或省份名称是什么?
[Unknown]: <st1:place w:st="on"><st1:state w:st="on">yunnan</st1:state></st1:place>
该单位的两字母国家代码是什么
[Unknown]: cn
CN=localhost, OU=oksonic, O=oksonic, L=kunming, ST=yunnan, C=cn 正确吗?
[否]: y
完成后会在Tomcat目录生成一个名为casserver的文件
iii. 生成服务端证书,执行以下命令
keytool -export -alias casserver -storepass changeit -file server.cer -keystore server.keystore
命令执行后生成一个server.cer的证书文件
iv. 生成客户端密匙,执行以下命令
keytool -genkey -alias casclient -keyalg RSA -keypass changeit -storepass changeit -keystore client.keystore
v. 生成客户端证书,执行以下命令
keytool -export -alias casclient -storepass changeit -file client.cer -keystore client.keystore
命令执行后生成一个server.cer的证书文件
vi. 导入证书文件到cacerts 文件中,执行以下命令
keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
keytool -import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit
把cacerts文件,拷贝到<java_home></java_home>\jre\lib\security目录下
vii. 拷贝cas-server-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">3.0.6</st1:chsdate>.zip包内的target目录下的cas.war文件到Tomcat目录下的webapps目录下
viii. 修改Tomcat的配置文件server.xml把以下补注释的内容打开
<connector port="8443" span="" maxhttpheadersize="8192"></connector>
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
加入红字部份后的内容如下:
<connector port="8443" span="" maxhttpheadersize="8192"></connector>
keystorePass="changeit" keystoreFile="/server.keystore"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
i. 使用Tomcat的例子jsp-examples来做客户端
ii. 打开项目中的web.xml文件,加入以下配置信息
<filter></filter>
<filter-name></filter-name>CASFilter
<filter-class></filter-class>
edu.yale.its.tp.cas.client.filter.CASFilter
<init-param></init-param>
<param-name></param-name>
edu.yale.its.tp.cas.client.filter.loginUrl
<param-value></param-value>
https://localhost:8443/cas/login
<init-param></init-param>
<param-name></param-name>
edu.yale.its.tp.cas.client.filter.validateUrl
<param-value></param-value>
https://localhost:8443/cas/proxyValidate
<init-param></init-param>
<param-name></param-name>
edu.yale.its.tp.cas.client.filter.serverName
<param-value></param-value>
localhost:8080
<filter-mapping></filter-mapping>
<filter-name></filter-name>CASFilter
<url-pattern></url-pattern>/ *
拷贝cas-client-java-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">2.1.1</st1:chsdate>.zip包中的casclient.jar到项目的lib目录下
现在可以启动Tomcat来测试一下是否能够进入到登录页
c) 配置CAS使用数据库进行验证
i. 在MySql中的Test库中新建app_user表
CREATE TABLE `app_user` (
`username` varchar(30) NOT NULL default '',
`password` varchar(45) NOT NULL default '',
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
添加以下用户:
INSERT INTO `app_user` (`username`,`password`) VALUES
('oksonic','oksonic'),
('oksonic1','oksonic1');
ii. 修改cas项目中的deployerConfigContext.xml文件
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
注释掉该行,在其下加入:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"></bean><bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select password from app_user where username=?" />
<property name="dataSource" ref="dataSource" />
</bean>
并添加一个bean:
<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>test</value></property>
<property name="password"><value>test</value></property>
</bean><bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource" destroy-method="close"></bean>
拷贝cas-server-jdbc-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">3.0.6</st1:chsdate>.jar和mysql-connector-java-3.1.11-bin.jar到webapps/cas/WEB-INF/lib下。
分享到:
相关推荐
3. 系统集成:cas 单点登录解决方案需要与不同的应用系统集成,以便用户可以使用单点登录访问所有相互信任的应用系统。 cas 单点登录解决方案可以带来许多好处,但是也存在一些挑战和限制。例如,cas 单点登录解决...
### 使用 CAS 实现 Mantis 单点登录与登出 #### 概述 单点登录(Single Sign-On,简称 SSO)是一种常见的身份认证模式,它允许用户在多个应用程序和服务中仅通过一次登录就能访问所有相关系统而无需多次输入密码。...
单点登录(Single Sign-On,简称SSO)是一种网络...总的来说,单点登录CAS是一个强大的工具,它能够提高企业或组织的IT系统安全性,提升用户满意度。理解和掌握CAS的原理及实施方法,对于IT专业人员来说是十分重要的。
CAS(Central Authentication Service)是单点登录的一种实现,它是一个开源的身份验证框架,主要用于Web应用。本主题涉及的是CAS的源码分析。 CAS的核心功能包括身份验证、服务票证(Ticket)管理和代理认证。当...
单点登录CAS方案,同时提供CAS+HTTP+Oracle和CAS+HTTPS+Oracle两种方案,亲自测试OK,客户端修改方案自行百度,太简单
CAS单点登录CAS单点登录CAS单点登录CAS单点登录
**基于Cas的单点登录实现** 单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。它为用户提供了一种方便、高效的访问多系统的方式,同时减少...
CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: • 开源的企业级单点登录解决方案。 • CAS Server ...
单点登录服务端项目cas-server单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-...
单点登录(Single Sign-On,简称SSO)是一种身份验证机制,允许用户在一个系统中登录后,无需再次认证即可访问其他相互信任的系统。这种机制有效地解决了用户在多系统环境中频繁登录的问题,提高了工作效率。 在...
本压缩包"集成cas实现单点登录认证.zip"显然包含了关于如何使用CAS(Central Authentication Service)框架集成SSO认证的资源。下面我们将详细探讨相关的知识点。 1. CAS简介:CAS是耶鲁大学开源的一个Web应用的...
现在,可以登录iTop,使用CAS单点登录框架来验证用户身份。 常见问题 在实现iTop与CAS集成时,可能会遇到一些问题,例如CAS Server未部署完成、iTop配置文件修改错误等。为了避免这些问题,可以按照上述步骤逐步...
本资源“单点登录CAS.net客户端源码”提供了实现CAS协议的.NET客户端源代码,适用于.NET框架的项目。 首先,我们需要理解CAS的基本工作流程。当用户尝试访问一个受CAS保护的资源时,会被重定向到CAS服务器进行身份...
4. 集成 CAS 和 Windows AD:使用 SPN 和 keytab 文件将 CAS 与 Windows AD 集成,实现单点登录免身份认证。 CAS 和 Windows AD 集成 集成 CAS 和 Windows AD 需要使用 SPN(Service Principal Name)和 keytab ...
github上下载的CAS项目不想自己重新构建的,可以直接下载我构建好的这个war来使用,做单点登录CAS必须使用到cas项目发布...我在分享单点登录的文章的时候需要用到这个文件所以进行了上传,。拿来直接解压就可以用啦。
CAS(Central Authentication Service)单点登录系统是一种网络身份验证协议,它允许用户通过单一的身份验证过程访问多个应用系统。在本“CAS单点登录demo”中,我们将深入探讨CAS的工作原理、配置步骤以及如何实现...
CAS(Central Authentication Service)是 Yale 大学开源的一个单点登录协议,它提供了一种集中式的认证方式,简化了多应用系统的身份验证流程。 **单点登录原理** 单点登录的核心在于一个中心认证服务器(CAS ...
基于Java中CAS的单点登录,有服务端的所有源码,将tomcat目录下的所有资源直接拷到Tomcat服务中间件的webapp目录下,阅读tomcat-webapp中的read.txt文档,查看使用说明,适用于第一次开发CAS单点登录的同学们,简单...
本文在已有的禅道集成CAS单点登录的客户端插件基础上进行的修改,因原有插件在我们的系统上调试无法成功,做了一些定制,环境如下: 1. CAS server 版本:4.0.0 2. 禅道开源版本: 9.6.3 3. 禅道CAS client 插件版本...
总之,CAS .NET单点登录示例提供了在.NET环境中集成CAS服务器的方法,使多个应用能共享同一个登录状态,提高用户的安全性和便利性。通过以上步骤,开发者可以快速地在.NET应用中实现CAS单点登录功能。