今天整合的业务系统使用了Spring-Security框架,并且集成了CAS-Client,CAS的版本是3.4
在CAS的单点注销下,原理是CAS在注销模块中,通过使用各个业务系统认证时所提供的URL做为路径逐个再去反向访问各个业务系统,发送的是POST请求,那么各个业务系统的CAS-CLIENT接受到该请求后,从请求内容中分解出票据,然后依据票据找到之前已经保存好的session,最后执行session.invalidate方法使其失效。原理很简单,在一般业务系统下也很正常,但如果业务系统使用了spring-security,则会出现问题,原因是spring-security中有一个默认配置是防止会话伪造的功能为开启,开启此功能后,用户的当前会话会被撤销从而产生一个新的会话,这时CAS-CLIENT在做撤销处理时就无法得到票据所对象的session对象了。
解决方法:
Spring Security默认就会启用session-fixation-protection,这会在登录时销毁用户的当前session,然后为用户创建一个新session,并将原有session中的所有属性都复制到新session中。
如果希望禁用session-fixation-protection,可以在http中将session-fixation-protection设置为none。
- <session-management session-fixation-protection="none">
- <concurrency-control/>
- </session-management>
session-fixation-protection的值共有三个可供选择,none,migrateSession和newSession。默认使用的是migrationSession,如同我们上面所讲的,它会将原有session中的属性都复制到新session中。上面我们也见到了使用none来禁用session-fixation功能的场景,最后剩下的newSession会在用户登录时生成新session,但不会复制任何原有属性。
相关推荐
### Spring Security 4.1.1.RELEASE 相关知识点 #### 一、Spring Security 简介 ##### 1.1 什么是 Spring Security Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它为 Java 应用程序提供...
- **CAS (spring-security-cas.jar)**:支持使用 CAS 单点登录协议。 - **OpenID (spring-security-openid.jar)**:提供 OpenID 身份验证支持。 #### 二、Spring Security 4.0 新特性 ##### 2.1 新特性 Spring ...
Spring Security是一个功能强大且高度可定制的认证和访问控制框架,它是针对Java应用程序的安全性需求而设计的。在本教程中,我们将深入介绍Spring Security的核心概念以及如何在项目中使用它。 首先,Spring ...
单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。在企业级应用中,SSO能够提供更便捷的用户体验,同时也增强了安全性。本篇将详细介绍如何...
- **CAS Sample**:介绍如何集成 CAS 单点登录服务。 - **Pre-Authentication Sample**:展示如何实现预认证机制。 #### 六、常用认证服务 - **机制、提供者和入口点**:介绍了 Spring Security 中的认证机制,...
Spring Security 提供了多种安全服务,包括认证和授权机制、Web资源访问控制、业务方法调用控制、领域对象访问控制(ACL)、单点登录(CAS)、X509认证和信道安全管理。其中,Web资源的保护通常通过Servlet过滤器...
通过理解CAS的核心功能、MySQL的整合方式以及Spring Security客户端的配置,你可以搭建起一个安全的、单点登录的多应用环境。这个项目为开发者提供了一个起点,以便进一步定制和扩展以满足特定业务需求。
- `cas-spring-security-cas-client.jar`:集成了 CAS 单点登录协议。 - `openid-spring-security-openid.jar`:提供了 OpenID 认证支持。 - **获得源代码**:可以通过 SVN 或 GIT 获取 Spring Security 的源代码...
- **CAS (spring-security-cas-client.jar)**:实现了与 CAS 单点登录系统的集成。 - **OpenID (spring-security-openid.jar)**:支持 OpenID 认证。 - **获得源代码**:开发者还可以从官方仓库下载 Spring ...
单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。CAS(Central Authentication Service)是耶鲁大学开发的一个开源项目,它提供了一种集中...
Spring Security 参考 1 第一部分前言 15 1.入门 16 2.介绍 17 2.1什么是Spring Security? 17 2.2历史 19 2.3版本编号 20 2.4获得Spring安全 21 2.4.1使用Maven 21 Maven仓库 21 Spring框架 22 2.4.2 Gradle 23 ...
CAS(Central Authentication Service)单点登录系统是一种广泛应用于企业、教育机构等的权限管理解决方案,它允许用户在访问多个应用系统时只需要进行一次身份验证。本文将深入探讨CAS单点登录实例及其相关知识点。...
Spring Security 的历史可以追溯到 Spring Framework 2.0 版本,最初作为一个独立项目,后来被整合进 Spring 生态系统中。随着版本迭代,Spring Security 不断引入新的特性和改进现有的功能,使其成为目前最流行的...
- `cas-spring-security-cas.jar`:CAS 单点登录支持。 - `openid-spring-security-openid.jar`:OpenID 支持。 #### 二、Spring Security 4.0 新特性与迁移 ##### 2.1 新特性 Spring Security 4.0 引入了许多...
部署完成后,需要在各个应用系统中集成 CAS Client,常见的有 Filter 集成方式和 Spring Security 集成方式。 四、CAS 登录流程 1. 用户打开应用系统,被重定向到 CAS Server 的登录页面。 2. 用户在 CAS Server ...