Cas server改造和Cas client配置说明
Cas Server改造
我这里讲cas Server更名为TrainCasServer 部署在tomcat下
第一步:
在deployerConfigContext.xml加入自己的配置
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />这个是做caserver 自己验证的,只要用户名密码一致就可通过验证
我们这里要做自己的数据库验证
把<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />给注释掉
在后面加入
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource" />
<property name="sql" value="select password from user where account=?" />
</bean>
在<sec:user-service id="userDetailsService">
<sec:user name="battags" password="notused" authorities="ROLE_ADMIN" />
</sec:user-service>后面加入
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/digitalschooltrain</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean>
第二步:WEB-INF-->spring-configuration下找到ticketGrantingTicketCookieGenerator.xml
将里面 p:cookieSecure=”true” 改为false;这是我因为后面client用的是Http协议访问而不是https,不改后面生成的票据就为空,退出就没有效果
第三部:修改cas-servlet.xml 找到logoutController控制器,在里面加入p:followServiceRedirects=”true”;这是后面我们做退出时可以重定向路径
例如http://demo.outegg.com:8080/TrainCasServer/logout?service=http://demo.outegg.com:8080/Test/login.jsp
至此casServer端配置完成
CasClient配置
第一步:配置SSL证书
以命令方式换到目录%TOMCAT_HOME%,在command命令行输入如下命令:
Keytool -genkey -alias tomcat_key -keyalg RSA -storepass changeit -keystore server.keystore -validity 3600
下面的信息提示随便写
您的名字与姓氏是什么?
[Unknown]: demo.outegg.com
您的组织单位名称是什么?
[Unknown]: demo.outegg.com
您的组织名称是什么?
[Unknown]: demo.outegg.com
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]:
CN=demo.outegg.com, OU=demo.outegg.com, O=demo.outegg.com, L=Unknown, ST=Unknown
, C=Unknown 正确吗?
按Y键
---说明下 demo.outegg.com是我在我电脑上的host文件做了个映射处理
127.0.0.1 demo.outegg.com
[否]:第二步: 导出证书
Keytool -export -trustcacerts -alias tomcat_key -file server.cer -keystore server.keystore -storepass changeit
第三步: 把证书导入tomcat应用的JDK下(这步比较关键,很多时候报证书错误,其实是证书没有导入tomcat所应用的JDK)
第四步:在tomcat的server.xml配置文件中加入
<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="C:/Program Files/Apache Software Foundation/Tomcat 7.0/server.keystore" <!--server.keystore 完整路径 -->
truststoreFile="C:/Program Files/Java/jdk1.7.0_01/jre/lib/security/cacerts" <!--cacerts 完整路径 一般为%JAVA_HOME%/jre/lib/security/cacerts-->
keystorePass="changeit"/>
第五步:在客户端应用配置web.xml
加入cas filter
<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>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://demo.outegg.com:8443/TrainCasServer</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://demo.outegg.com:8443/TrainCasServer/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://demo.outegg.com:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://demo.outegg.com:8443/TrainCasServer</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://demo.outegg.com:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<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>
<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>
分享到:
相关推荐
### CAS (Central Authentication Service) 服务端核心接口详解 #### 概述 CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On, SSO)协议和服务框架,主要用于简化跨多个应用程序的安全...
- Maven依赖:在项目中添加CAS客户端库的Maven依赖,例如`jasig-cas-client`,这将包含处理CAS协议所需的所有类和配置。 - 配置Web.xml:在Web应用的配置文件中,我们需要配置CAS过滤器链,包括`...
1. **下载CAS Server和CAS Client**:从官方网址下载所需的版本,例如cas-server-3.3.1-release.tar.gz和cas-client-java-3.0.0.zip。 2. **安装SSL证书**:由于CAS认证基于SSL协议,因此需要安装SSL证书。可以通过`...
对于Java项目,可以从下载的`cas-client-2.0.11.zip`中提取`casclient.jar`并放置到项目的`lib`目录下。 - 接下来,需要在客户端的应用程序中配置CAS Filter来实现SSO功能。以一个简单的Servlet为例,在其`web.xml`...
CAS的特点在于其开源性和对企业级应用的支持,它允许独立部署的CAS Server来处理多个Web应用(即CAS Client)的认证需求,同时支持多种客户端平台,如Java、.Net、PHP、Perl、Apache、uPortal、Ruby等。 **CAS原理...
《CAS客户端3.1.12版本详解》 CAS(Central Authentication Service)是 Yale 大学开发的一个开源项目,主要用于实现单点登录(Single Sign-On, SSO)。它是一个基于Web的认证协议,旨在简化用户对多个应用系统的...
【CAS服务器详解】 CAS(Central Authentication Service,中央认证服务)是一种基于票证的单点登录(Single Sign-On,SSO)协议,它由耶鲁大学开发并开源,旨在简化网络应用的认证流程,使得用户只需一次登录即可...
CAS 通常由三部分组成:CAS Server、CAS Client 和服务提供者(Service Provider)。CAS Server 负责验证用户凭证,CAS Client 负责与 CAS Server 进行交互,并拦截对服务提供者的请求,实现身份验证。 **二、CAS ...
通过对"casclient-3.1.6源码"的深入研究,开发者不仅可以掌握SSO的基本工作原理,还能提高在实际项目中集成和优化SSO的能力。这不仅对于理解CAS协议,对于提升Web应用程序的安全性和用户体验都有极大的帮助。
### django+cas环境部署知识点详解 #### 一、系统架构概述 本系统采用了Django作为主要的应用框架,并结合了Nginx、Elasticsearch、CAS(Central Authentication Service)及MySQL等多个组件来构建一个完整的分布式...
CAS单点登录,退出后ticket失效报出异常解决办法——换jar包 把客户端的 casclient.jar 包换成我的这个。
**CAS协议3.0详解** CAS(Central Authentication Service)是一种网络单点登录(SSO)/单点登出(SLO)协议。它的主要目的是在用户访问多个应用程序时,只需向中央CAS服务器提供一次凭证,如用户名和密码,从而...
CAS的基本工作原理可以分为两个核心部分:CAS Server和CAS Client。 1. **CAS Server**:负责用户的认证和Ticket的管理,是单点登录系统中的认证中心。 2. **CAS Client**:部署于各个需要保护的应用系统中,用于...
它提供了丰富的API和配置选项,以支持各种CAS协议版本,包括CAS 1.0、2.0、3.0以及CASv2+ Proxy Granting Ticket(PGT)的实现。这个客户端库使.NET应用程序能够验证CAS服务器发出的票证(ticket),从而实现无感知...
### CAS安装指南以及开发步骤详解 #### CAS简介 CAS(Central Authentication Service)是由JA-SIG组织发起的一个项目,旨在为Web应用系统提供一种统一的、易于使用的单点登录(Single Sign-On, SSO)解决方案。...
2. **CAS架构**:CAS由三个主要组件组成:客户端(Cas-Client)、服务提供商(Service Provider)和CAS服务器。客户端负责引导用户到CAS服务器进行认证,服务提供商则验证CAS服务器返回的票据以确认用户的身份。 3....
CAS 3.5.2 单点登录详解 CAS(Central Authentication Service)是一种流行的单点登录解决方案,主要用于提供统一身份验证和授权管理。CAS 3.5.2 是 CAS 的一个稳定版本,提供了许多实用的功能和配置项。在本文中,...