转自:
http://stacker.top/blog/2016/12/24/CAS%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95%E5%AE%9E%E8%B7%B5/
一、部署tomcat
二、配置tomcat SSL链接
1、首先使用jre的keytool工具生成keystore文件
C:\Program Files\Java\jdk1.8.0_25\jre\bin>keytool.exe -genkey -alias tomcat -ke
alg RSA 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: 您的组织单位名称是什么? [Unknown]: 您的组织名称是什么? [Unknown]: 您所在的城市或区域名称是什么? [Unknown]: 您所在的省/市/自治区名称是什么? [Unknown]: 该单位的双字母国家/地区代码是什么? [Unknown]: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确? [否]: 是 输入 <tomcat> 的密钥口令 (如果和密钥库口令相同, 按回车):keystore生成之后会存放在用户目录下
C:\Users\zhidong\.keystore
- 配置 Tomcat 以使用 keystore 文件
修改tomcat配置文件server.xml使用该keystore文件,内容如下
<Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true" enableLookups="false" maxThreads="25" port="8443" keystoreFile="C:/Users/zhidong/.keystore" keystorePass="james-huang" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS" />1.测试
启动 Tomcat 并访问 https://localhost:8443. 你将看到 Tomcat 默认的首页。如图:
需要注意的是,如果你访问默认的 8080 端口,还是有效的。
三、配置CAS 服务器
1、下载cas server包
2、获取cas-server-webapp-4.0.0.war
包
3、拷贝到tomcat webapps目录下。
4、tomcat默认autodeploy,即拷贝过去后tomcat会热加载该war包。
5、查询CAS Server登陆页面的用户名密码
该文件apache-tomcat-8.5.9\webapps\cas-server-webapp-4.0.0\WEB-INF\deployerConfigContext.xml中的
<bean id="primaryAuthenticationHandler" class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler"> <property name="users"> <map> <entry key="casuser" value="Mellon"/> </map> </property> </bean>
6、测试页面
四、配置CAS Client
1、下载 cas client的包cas-client-core-3.2.1.jar
2、创建web工程。
3、编辑web.xml 增加如下内容、
<!-- ======================== 单点登录开始 ======================== --> <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 --> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener> <!-- 该过滤器用于实现单点登出功能,可选配置。 --> <filter> <filter-name>CAS Single Sign Out Filter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> </filter> <filter-mapping> <filter-name>CAS Single Sign Out Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 该过滤器负责用户的认证工作,必须启用它 --> <filter> <filter-name>CASFilter</filter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> <init-param> <param-name>casServerLoginUrl</param-name> <!--这里的单点登录服务器登录url --> <param-value>https://localhost:8443/cas-server-webapp-4.0.0/login</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://localhost:8080</param-value> </init-param> </filter> <filter-mapping> <filter-name>CASFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 该过滤器负责对Ticket的校验工作,必须启用它 --> <filter> <filter-name>CAS Validation Filter</filter-name> <filter-class> org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <!-- 该参数需要配置为cas server的url前缀,即不带login --> <param-value>https://localhost:8443/cas-server-webapp-4.0.0</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://localhost:8080</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS Validation Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 该过滤器负责实现HttpServletRequest请求的包裹, 比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。 --> <filter> <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> </filter> <filter-mapping> <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。 比如AssertionHolder.getAssertion().getPrincipal().getName()。 --> <filter> <filter-name>CAS Assertion Thread Local Filter</filter-name> <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class> </filter> <filter-mapping> <filter-name>CAS Assertion Thread Local Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- ======================== 单点登录结束 ======================== -->
4、将web工程导出war包,到tomcat的webapps目录。
5、浏览器访问,该cas client的工程页面。
相关推荐
通过这个“CAS单点登录demo”,你可以学习并实践如何设置和配置CAS环境,理解其工作流程,为你的多应用环境提供安全便捷的单点登录解决方案。记得在实践中不断探索和调试,以便更好地理解和掌握CAS的精髓。
总之,CAS单点登录系统提供了统一的身份验证入口,简化了用户登录过程,提高了用户体验。通过理解和实践CAS Server的配置以及客户端的集成,开发者可以有效地在自己的应用环境中实现单点登录功能。
在提供的PDF文件`cas单点登录(一).pdf`和`cas单点登录(二).pdf`中,应该详细涵盖了这些步骤,以及更深入的技术细节,包括可能出现的问题和解决方案。通过学习这些文档,你应该能够成功地配置和实施CAS单点登录...
这个项目可能包含配置文件、控制器代码、视图模板和其他相关资源,展示了如何在实际应用中实现CAS单点登录功能。 综上所述,.NET CAS单点登录涉及到了身份验证、票证机制、客户端和服务器之间的交互等多个核心概念...
Struts2和CAS单点登录(SSO)的集成是一个常见的Web应用安全实践,它允许用户在一个系统登录后,无须再次输入凭证就能访问其他相互信任的系统。在这个例子中,我们将深入探讨如何在MyEclipse环境下使用Struts2框架与...
**CAS单点登录配置大全** CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源单点登录(Single Sign-On,SSO)协议。它允许用户通过一个统一的认证系统访问多个应用系统,而无需在每个系统...
**基于Cas的单点登录实现** 单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。它为用户提供了一种方便、高效的访问多系统的方式,同时减少...
本文将深入探讨CAS单点登录实例及其相关知识点。 首先,单点登录(Single Sign-On,SSO)是一种身份验证机制,使得用户在一个应用系统中登录后,无需再次输入认证信息即可访问其他关联的应用系统。CAS作为开源的SSO...
综上所述,这个压缩包提供了一个完整的CAS单点登录实例,包括服务端和客户端的实现,可以帮助开发者理解并部署自己的CAS系统。通过深入研究和实践,你可以掌握如何利用CAS实现Web应用的安全、便捷的单点登录功能。
### 基于CAS单点登录的实现:深入解析与实践 #### 一、引言:CAS单点登录概述 单点登录(SSO,Single Sign-On)是一种身份验证机制,允许用户一次登录后,无需再次输入凭证即可访问多个应用程序和服务。在教育机构...
### CAS单点登录配置全过程详解 #### 一、前言 CAS(Central Authentication Service)是一种开放源代码的单点登录(Single Sign-On, SSO)协议和服务...希望本篇文章能帮助读者更好地理解和实践CAS单点登录技术。
CAS(Central Authentication Service)是 Yale 大学开源的一个基于 Java 的单点登录系统,它提供了一种安全、便捷的身份验证机制。本文档将深入探讨如何使用 CAS 实现 Java 应用中的单点登录功能。 一、CAS 概述 ...
在这个“cas单点登录自己写的测试例子”中,开发者提供了一个包含客户端和服务器端的完整示例,旨在帮助理解并实践CAS SSO机制。这个项目使用Maven作为构建工具,方便管理和依赖的解决。 首先,我们来看一下CAS的...
CAS(Central Authentication Service)是...总之,"cas单点登录4.0"的资源对于学习和实践CAS单点登录系统非常重要。无论是部署和配置CAS服务器,还是深入研究其源代码,都能帮助我们更全面地理解和掌握单点登录技术。
在本文中,我们将深入探讨CAS单点登录的基本原理、工作流程以及如何通过提供的Demo进行实践操作。 **CAS基本原理** CAS的核心思想是用户只需在一个应用系统中验证身份,之后访问其他所有支持CAS的应用系统时都不再...
该演示项目将通过简单而清晰的代码示例,演示CAS单点登录的基本原理、配置步骤以及如何集成CAS客户端到你的应用中。 适用人群: 这个资源适用于具有一定Java编程和Web开发经验的开发人员,特别是那些对单点登录和...
"itop接入CAS单点登录框架实现步骤" 本文将详细介绍开源ITSM工具iTop接入开源单点登录框架CAS的实现方法。该方法经过实践验证,已经在作者的单位中应用。 CAS框架简介 CAS(Central Authentication Service)是一...
标题中的"CAS单点登录"是指Central Authentication ...总之,"CAS单点登录之测试应用"这篇文章会是一篇详实的技术分享,涵盖了从理论到实践的多个方面,旨在帮助读者掌握如何在实际环境中部署和测试CAS单点登录系统。
CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(Single Sign-On,SSO)框架,由耶鲁大学开发并维护。SSO允许用户通过一次登录验证就能访问多个应用系统,无需在每个系统之间单独进行...
本源码集合为一个简单的Java实现的SSO CAS单点登录示例,适合初学者理解和实践SSO原理。 首先,我们需要理解SSO的基本流程: 1. 用户尝试访问受保护的应用A。 2. 应用A发现用户未登录,重定向到CAS服务器的登录页面...