实验背景: 系统环境: Windows XP | SUN JDK1.6U4 | Tomcat6.0.14 | CAS Server 3.1.1 + CAS Client 2.1.1
主机完整名称: Linly
浏览器: FireFox V2.0.0.11
实验步骤: STEP 1,搭建Java Web服务器环境 安装 JDK + Tomcat 6.0.14 , HTTP端口8080 , HTTPS端口8443
JAVA_HOME = D:\Java\jdk1.6.0_04
CATALINA_HOME = D:\Java\apache-tomcat-6.0.14
安装完毕,启动Tomcat ,在浏览器上 测试 http://Linly:8080/
出现上述界面,表明系统STEP1成功搭建。
STEP 2,使用Java Keytool工具为系统生成HTTPS证书,并为系统注册 (Java Keytool相关资料可参阅:Java keytool 安全证书学习笔记), 在DOS窗体运行以下指令(建议编写一个BAT批处理文件执行)
[quote]
cls
rem please set the env JAVA_HOME before run this bat file
rem delete alia tomcat if it is existed
keytool -delete -alias tomcatsso -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
keytool -delete -alias tomcatsso -storepass changeit
(注释: 清除系统中可能存在的名字为tomcatsso 的同名证书) rem list all alias in the cacerts
keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
(注释: 列出系统证书仓库中存在证书名称列表) rem generator a key
keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=linly" -storepass changeit
(注释:指定使用RSA算法,生成别名为tomcatsso的证书,存贮口令为changeit,证书的DN为"cn=linly" ,这个DN必须同当前主机完整名称一致哦,切记!!!)rem export the key
keytool -export -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -storepass changeit
(注释: 从keystore中导出别名为tomcatsso的证书,生成文件tomcatsso.crt)rem import into trust cacerts
keytool -import -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -keystore %java_home%/jre/lib/security/cacerts -storepass changeit
(注释:将tomcatsso.crt导入jre的可信任证书仓库。注意,安装JDK是有两个jre目录,一个在jdk底下,一个是独立的jre,这里的目录必须同Tomcat使用的jre目录一致,否则后面Tomcat的HTTPS通讯就找不到证书了) rem list all alias in the cacerts
keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
(注释:列出jre可信任证书仓库中证书名单,验证先前的导入是否成功,如果导入成功,应该在列表中能找到tomcatsso这个别名,如下图)[/quote]
同时,在D:\Java\jdk1.6.0_04\jre\lib\security目录下能找到“tomcatsso.crt”这个文件;在C:\Documents and Settings\Linly目录下能找到“.keystore”文件。
满足上述条件则STEP2部署完成。
STEP 3,配置Tomcat的HTTPS服务 编辑D:\Java\apache-tomcat-6.0.14\conf下的server.xml文件,在connector的配置位置添加以下的配置:
[quote]<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="C:/Documents and Settings/new/.keystore" keystorePass="changeit"
truststoreFile="D:/Java/jdk1.6.0_04/jre/lib/security/cacerts"
clientAuth="false" sslProtocol="TLS"/>[/quote]
启动Tomcat,访问https://linly:8443/,出现以下界面说明HTTPS配置生效:
STEP 4,为HelloWorldExample程序配置CAS过滤器 访问http://linly:8080/examples/servlets/servlet/HelloWorldExample,出现以下界面说明应用正常启动:
编辑D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF下的web.xml文件,添加如下信息:
[quote]<filter>
<filter-name>CAS Filter</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://Linly:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://Linly:8443/cas/serviceValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>Linly:8080</param-value>
</init-param>
</filter>
[/quote]
[quote]
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/servlets/servlet/HelloWorldExample</url-pattern>
</filter-mapping>
[/quote]
拷贝casclient.jar文件到目录D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF\lib下。
由于我们使用的是Tomcat6.0.14,因此,还要拷贝commons-logging-1.0.4.jar到该目录下。
STEP 5,部署JA-SIG(CAS)服务器 拷贝cas.war到D:\Java\apache-tomcat-6.0.14\webapps目录下。启动Tomcat,访问网址http://linly:8080/cas/index.jsp,出现以下画面:
输入用户名/密码 :linly/linly(任意两个相同的字窜),点击“登录”,出现以下画面:
表示CAS服务器配置运行成功。
STEP 6,测试JA-SIG(CAS)部署结果 启动Tomcat。
测试使用浏览器登陆以下网址:http://linly:8080/examples/servlets/servlet/HelloWorldExample,页面将弹出以下认证框,点击“确定”
页面将重定向到JA-SIG的SSO登录认证页面
输入用户名=密码,如:linly/linly,则通过验证,进入应用的入口界面,如下:
细心的用户将发现,此时的URL不再是:
http://linly:8080/examples/servlets/servlet/HelloWorldExample,
URL的尾端带上了一个ticket参数:
http://linly:8080/examples/servlets/servlet/HelloWorldExample?ticket=ST-2-qTcfDrdFb0bWndWgaqZD
到此,JA-SIG(CAS)服务器的初步SSO部署宣告成功。
相关推荐
### JA-SIG (CAS) 简单部署详解 #### 实验背景与目的 本实验旨在详细介绍JA-SIG (CAS) 的简单部署流程。CAS(Central Authentication Service)是由JA-SIG(Joint Architecture for Shared Information and ...
JA-SIG CAS是其最初的开发者,它允许用户通过一个统一的登录界面访问多个相互独立的应用系统,从而简化了用户的登录体验。 CAS Server是CAS的核心组件,它负责处理用户的认证请求。在我们讨论的环境中,CAS Server ...
- **文档**:JA-SIG CAS项目有详细的官方文档和开发者指南,方便用户学习和实施。 - **社区**:活跃的开发者社区提供技术支持和问题解答。 综上所述,基于Java的JA-SIG CAS系统是一个强大且灵活的单点登录解决...
JA-SIG CAS(Central Authentication Service)是Java社区开发的一个开源SSO解决方案,它提供了一个集中式的认证服务器,可以为各种Web应用程序提供安全的身份验证服务。 CAS的核心功能包括: 1. **身份验证**:...
总之,"基于java的开发源码-单点登录系统 JA-SIG CAS.zip"为开发者提供了深入了解和实践SSO机制的机会,通过对源码的学习,不仅可以掌握SSO的基本原理,还能深入到Java Web开发和安全认证的细节中。这对于提升Java...
在本案例中,我们讨论的是基于Java实现的单点登录系统——JA-SIG CAS。这个系统是开源的,由教育高级网(Ja-Sig)开发,旨在提供一种简单而有效的解决方案,为校园环境或企业环境中的各种应用实现安全的单点登录功能...
通过学习这些文档,你可以深入了解如何在你的Java项目中实施JA-SIG CAS,以构建一个高效、安全的单点登录系统。同时,这些资料也可能涵盖了一些实际案例和常见问题的解决方案,帮助你在实际操作中避免陷阱,提高开发...
JA-SIG CAS(Central Authentication Service)是Java社区开发的一个开源SSO项目,旨在简化Web应用的身份验证过程。 CAS的核心功能包括: 1. **统一认证**:用户只需要一个用户名和密码,就能访问所有集成到CAS的...
开发者可以利用源码中的测试用例和示例来理解和学习如何将CAS集成到自己的应用中,以及如何调试和测试CAS的配置。 这个Java单点登录系统的源码是理解SSO工作原理和实践的好资源,对于Java Web开发者来说,深入研究...
这个压缩包“基于Java的实例源码-单点登录系统 JA-SIG CAS.zip”包含了一个完整的CAS服务器和客户端的源代码,可以帮助开发者理解和学习如何在Java环境中构建和集成单点登录系统。 首先,CAS的核心工作流程包括以下...
《DT-RSI-Sig:MetaTrader 4平台的高级交易指标》 在金融交易领域,技术分析是投资者预测市场走势的重要工具,而MetaTrader 4(MT4)平台则是全球最受欢迎的交易平台之一,它提供了丰富的技术指标供用户进行交易...
- **研究目标**:针对Aigis-sig方案,提出了一种FPGA平台上高效且紧凑的软硬件协同实现方法。 #### 四、关键技术与实现 - **核心工作**:设计了一种专门针对Aigis-sig方案参数选择的多项式运算硬件实现架构。 - **...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
《MetaTrader 5脚本——深入理解i-sig指标》 在金融交易领域,MetaTrader 5(MT5)是一款广泛使用的交易平台,它为交易者提供了丰富的技术分析工具和自动化交易功能。本篇文章将深入探讨名为"i-sig"的MetaTrader 5...
### Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题 #### 一、背景介绍 在处理包含非英文字符的数据时,尤其是使用 Python 的 `csv` 模块来操作 CSV 文件时,可能会遇到字符编码问题,导致中文等非英文...