`
liuzhiyi7288
  • 浏览: 31926 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CAS client 端添加初始化参数传到server端

    博客分类:
  • SSO
 
阅读更多
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 Server 3.4.2 和 Cas Client 3.1.6 源代码解析** CAS(Central Authentication Service)是一种广泛使用的开放源代码单一登录(Single Sign-On, SSO)框架,它允许用户通过一个认证入口点访问多个应用系统,...

    spring boot整合CAS Client实现单点登陆验证的示例

    CAS Client 负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。 CAS Client 的工作流程可以分为以下步骤: 1. 客户端应用向 CAS Server 发送身份认证请求。 2. ...

    CASClient集群环境的Session问题及解决方案.docx

    CASClient 集群环境的 Session 问题及解决方案 本文将详细介绍 CASClient 集群环境中的 Session 问题及解决方案。CASClient 是一种开源的单点登录系统,能够提供统一的登录和注销机制。但是在集群环境中应用 CAS...

    java cas server 集成 java cas client 和 net client

    java cas server 集成 java cas client 和 net client 附带文档,问题解决方法,源码,jar包,包含技术有java cas,cfx,LDAP,net cas。核心在于集成了net client,,上传太小,不能传源码,有需要的加群。有兴趣的...

    casclient.jar

    在实际应用中,开发者通常需要将`casclient.jar`添加到项目的类路径中,然后配置相应的`cas.properties`文件来指定CAS服务器的相关参数。例如,CAS服务器的URL、服务URL(应用的验证地址)、是否启用SSL等。此外,还...

    cas client

    2. 配置文件:在Spring Boot项目中,通常会有一个`application.properties`或`application.yml`文件,用于配置CAS客户端的相关参数,如CAS服务器的URL、服务验证端点、安全相关的属性等。 3. 登录与票证验证:当...

    CAS-Server-Client单点登录demo

    在这个"CAS-Server-Client单点登录demo"中,我们将深入探讨CAS服务器与客户端的整合以及如何在Apache Tomcat上进行测试。 首先,CAS服务器是整个SSO机制的核心,它负责处理用户的认证请求和验证用户的身份。在"cas-...

    cas-client-3.2.1 cas-server-3.4.11

    标题中的"cas-client-3.2.1"和"cas-server-3.4.11"分别指的是CAS客户端和服务器的版本号。 1. **CAS客户端**: CAS客户端是安装在需要进行身份验证的应用系统上的组件,它负责将用户重定向到CAS服务器进行身份验证...

    cas-server-3.5.1和cas-client-3.2.1

    接下来是`cas-client-3.2.1`,它是CAS客户端库,用于集成到各个应用系统中。主要功能包括: 1. **Ticket验证**:客户端会检查用户访问应用时携带的CAS服务票证(Service Ticket),并将其发送到CAS服务器验证。 2. ...

    cas-client-3.2.1和cas-server-3.5.2

    在这个压缩包文件中,"cas-client-3.2.1" 和 "cas-server-3.5.2" 分别代表CAS客户端和服务器的特定版本。 **CAS Server 3.5.2** CAS Server是整个SSO系统的核心,它负责验证用户的凭证并提供登录服务。版本3.5.2是...

    cas-client-2.0.11.zip_cas client_cas-clie_cas-client-2._java CAS

    5. **集成应用**:将CAS客户端集成到Java应用中,通常需要修改Web应用的web.xml配置,添加CAS过滤器和监听器,确保在用户访问受保护的页面时能够触发SSO流程。 6. **安全性**:CAS客户端提供了一种安全的身份验证...

    cas server端 和client jms 验证包

    在"cas server端 和client JMS 验证包"中,我们关注的是CAS服务器端和客户端的交互以及JMS(Java Message Service)在验证过程中的应用。JMS是Java平台中定义的一种标准接口,用于在分布式环境中交换消息,它可以...

    .net的casclient源码

    在".net的casclient源码"中,主要包含以下核心知识点: 1. **CAS协议**:理解CAS的工作原理,包括服务票证(Service Ticket)和票据验证(Ticket Validation)过程。在.NET客户端中,这些概念被转化为具体的类和...

    cas client cas server

    ### CAS (Central Authentication Service) 服务端核心接口详解 #### 概述 CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On, SSO)协议和服务框架,主要用于简化跨多个应用程序的安全...

    cas-client-3.2.1+cas-server-3.4.10

    这个"cas-client-3.2.1+cas-server-3.4.10"组合涉及到CAS客户端和服务器的两个不同版本。 1. **CAS客户端**(cas-client-3.2.1-release.zip): CAS客户端是安装在各个应用服务器上的组件,它负责与CAS服务器通信...

    Yale CAS Server的部署及cas-java-client 3.2的应用

    2. **初始化客户端**:创建`CasClient`实例,配置CAS Server的URL和服务验证URL。 3. **服务票证验证**:当用户访问受保护的资源时,客户端会检查是否存在有效的服务票证(ST)。如果没有,它将重定向用户到CAS ...

    cas-client3.2.1

    在集成`cas-client3.2.1`时,我们需要将其包含到我们的应用项目中,通常是通过添加JAR包(如`cas-client-core-3.2.1.jar`)到项目的类路径来实现。 **集成步骤**: 1. **下载和导入JAR包**:首先,你需要从官方源...

    cas4.1.4server服务端+client端

    在这个压缩包中,"cas4.1.4server服务端"包含了运行CAS服务器所需的所有文件,而"client"目录则包含了客户端的配置和库文件,使得其他应用能够与CAS服务器进行交互。 1. CAS服务端: - CAS服务器是整个系统的核心...

    cas4.0.7+casClient示例(原生)

    在这个“cas4.0.7+casClient示例(原生)”中,我们将深入探讨如何配置和使用CAS 4.0.7版本与原生的CAS客户端进行集成,以及如何结合数据库实现完整的前后端解决方案。 **1. CAS 4.0.7简介** CAS 4.0.7是CAS服务器...

    cas-server-3.4.10-release和cas-client-3.2.1-release

    接下来是`cas-client-3.2.1-release`,它是CAS客户端的发布包,用于集成到各个应用系统中,实现对CAS服务器的调用。这个版本包含客户端库、配置示例和其他相关资源。客户端的主要功能有: 1. **票证验证**:客户端...

Global site tag (gtag.js) - Google Analytics