1. 修改client 端web应用的web.xml,如下:
<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>
<!-- CAS服务端地址-->
<param-value>http://192.168.104.123:8080/cas/login</param-value>
</init-param>
<init-param>
<param-name>service</param-name>
<!-- 本地地址-->
<param-value>http://192.168.104.101:8080/*</param-value>
</init-param>
<init-param>
<param-name>renew</param-name>
<param-value>false</param-value>
<!-- 这个如果为true 每次登录子系统都要验证,就不能实现登陆一次,可以访问其他子系统的需求 -->
</init-param>
<init-param>
<param-name>webRootKey</param-name>
<param-value>test</param-value>
</init-param>
</filter>
其中webRootKey参数为client添加的初始化参数,想传到server端
2. 修改org.jasig.cas.client.authentication.AuthenticationFilter.java如下:
添加属性webRootKey
/**
* the web app root key
*/
private String webRootKey;
,
提供set方法
public final void setWebRootKey(final String webRootKey){
this.webRootKey = webRootKey;
}
修改initInternal方法,添加
setWebRootKey(getPropertyFromInitParams(filterConfig, "webRootKey", null));
log.trace("Loaded WebRootKey parameter: " + this.webRootKey);
修改init方法,添加
CommonUtils.assertNotNull(this.webRootKey, "webRootKey cannot be null.");
3 自定义Credentials类继承UsernamePasswordCredentials,内容如下:
private static final long serialVersionUID = 179318697348051866L;
/** the web root key */
private String webRootKey;
public String getWebRootKey() {
return webRootKey;
}
public void setWebRootKey(String webRootKey) {
this.webRootKey = webRootKey;
}
4 修改自定义验证类(继承 AbstractJdbcUsernamePasswordAuthenticationHandler)的authenticateUsernamePasswordInternal方法如下:
FinalUserCredentials finalUserCredentials = (FinalUserCredentials) credentials;
String username = finalUserCredentials.getUsername();
String password = finalUserCredentials.getPassword();
/** get web root key */
String webRootKey = finalUserCredentials.getWebRootKey();
既可以获得webRootKey扩展参数。
分享到:
相关推荐
**Cas Server 3.4.2 和 Cas Client 3.1.6 源代码解析** CAS(Central Authentication Service)是一种广泛使用的开放源代码单一登录(Single Sign-On, SSO)框架,它允许用户通过一个认证入口点访问多个应用系统,...
CAS Client 负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。 CAS Client 的工作流程可以分为以下步骤: 1. 客户端应用向 CAS Server 发送身份认证请求。 2. ...
CASClient 集群环境的 Session 问题及解决方案 本文将详细介绍 CASClient 集群环境中的 Session 问题及解决方案。CASClient 是一种开源的单点登录系统,能够提供统一的登录和注销机制。但是在集群环境中应用 CAS...
java cas server 集成 java cas client 和 net client 附带文档,问题解决方法,源码,jar包,包含技术有java cas,cfx,LDAP,net cas。核心在于集成了net client,,上传太小,不能传源码,有需要的加群。有兴趣的...
在实际应用中,开发者通常需要将`casclient.jar`添加到项目的类路径中,然后配置相应的`cas.properties`文件来指定CAS服务器的相关参数。例如,CAS服务器的URL、服务URL(应用的验证地址)、是否启用SSL等。此外,还...
2. 配置文件:在Spring Boot项目中,通常会有一个`application.properties`或`application.yml`文件,用于配置CAS客户端的相关参数,如CAS服务器的URL、服务验证端点、安全相关的属性等。 3. 登录与票证验证:当...
在这个"CAS-Server-Client单点登录demo"中,我们将深入探讨CAS服务器与客户端的整合以及如何在Apache Tomcat上进行测试。 首先,CAS服务器是整个SSO机制的核心,它负责处理用户的认证请求和验证用户的身份。在"cas-...
标题中的"cas-client-3.2.1"和"cas-server-3.4.11"分别指的是CAS客户端和服务器的版本号。 1. **CAS客户端**: CAS客户端是安装在需要进行身份验证的应用系统上的组件,它负责将用户重定向到CAS服务器进行身份验证...
接下来是`cas-client-3.2.1`,它是CAS客户端库,用于集成到各个应用系统中。主要功能包括: 1. **Ticket验证**:客户端会检查用户访问应用时携带的CAS服务票证(Service Ticket),并将其发送到CAS服务器验证。 2. ...
在这个压缩包文件中,"cas-client-3.2.1" 和 "cas-server-3.5.2" 分别代表CAS客户端和服务器的特定版本。 **CAS Server 3.5.2** CAS Server是整个SSO系统的核心,它负责验证用户的凭证并提供登录服务。版本3.5.2是...
5. **集成应用**:将CAS客户端集成到Java应用中,通常需要修改Web应用的web.xml配置,添加CAS过滤器和监听器,确保在用户访问受保护的页面时能够触发SSO流程。 6. **安全性**:CAS客户端提供了一种安全的身份验证...
在"cas server端 和client JMS 验证包"中,我们关注的是CAS服务器端和客户端的交互以及JMS(Java Message Service)在验证过程中的应用。JMS是Java平台中定义的一种标准接口,用于在分布式环境中交换消息,它可以...
在".net的casclient源码"中,主要包含以下核心知识点: 1. **CAS协议**:理解CAS的工作原理,包括服务票证(Service Ticket)和票据验证(Ticket Validation)过程。在.NET客户端中,这些概念被转化为具体的类和...
### CAS (Central Authentication Service) 服务端核心接口详解 #### 概述 CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On, SSO)协议和服务框架,主要用于简化跨多个应用程序的安全...
这个"cas-client-3.2.1+cas-server-3.4.10"组合涉及到CAS客户端和服务器的两个不同版本。 1. **CAS客户端**(cas-client-3.2.1-release.zip): CAS客户端是安装在各个应用服务器上的组件,它负责与CAS服务器通信...
2. **初始化客户端**:创建`CasClient`实例,配置CAS Server的URL和服务验证URL。 3. **服务票证验证**:当用户访问受保护的资源时,客户端会检查是否存在有效的服务票证(ST)。如果没有,它将重定向用户到CAS ...
在集成`cas-client3.2.1`时,我们需要将其包含到我们的应用项目中,通常是通过添加JAR包(如`cas-client-core-3.2.1.jar`)到项目的类路径来实现。 **集成步骤**: 1. **下载和导入JAR包**:首先,你需要从官方源...
在这个压缩包中,"cas4.1.4server服务端"包含了运行CAS服务器所需的所有文件,而"client"目录则包含了客户端的配置和库文件,使得其他应用能够与CAS服务器进行交互。 1. CAS服务端: - CAS服务器是整个系统的核心...
在这个“cas4.0.7+casClient示例(原生)”中,我们将深入探讨如何配置和使用CAS 4.0.7版本与原生的CAS客户端进行集成,以及如何结合数据库实现完整的前后端解决方案。 **1. CAS 4.0.7简介** CAS 4.0.7是CAS服务器...
接下来是`cas-client-3.2.1-release`,它是CAS客户端的发布包,用于集成到各个应用系统中,实现对CAS服务器的调用。这个版本包含客户端库、配置示例和其他相关资源。客户端的主要功能有: 1. **票证验证**:客户端...