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

整合了Spring-Security的业务系统无法通过CAS进行单点注销

    博客分类:
  • cas
阅读更多

今天整合的业务系统使用了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。 

 
  1. <session-management session-fixation-protection="none">  
  2.             <concurrency-control/>  
  3. </session-management>  
 
session-fixation-protection的值共有三个可供选择,none,migrateSession和newSession。默认使用的是migrationSession,如同我们上面所讲的,它会将原有session中的属性都复制到新session中。上面我们也见到了使用none来禁用session-fixation功能的场景,最后剩下的newSession会在用户登录时生成新session,但不会复制任何原有属性。
1
0
分享到:
评论
1 楼 ruzhefeng 2011-12-11  
session-fixation-protection="none"配置的地方都错了。。。。

相关推荐

    spring-security-reference-4.1.1.RELEASE

    ### Spring Security 4.1.1.RELEASE 相关知识点 #### 一、Spring Security 简介 ##### 1.1 什么是 Spring Security Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它为 Java 应用程序提供...

    spring-security-reference-4.0.1

    - **CAS (spring-security-cas.jar)**:支持使用 CAS 单点登录协议。 - **OpenID (spring-security-openid.jar)**:提供 OpenID 身份验证支持。 #### 二、Spring Security 4.0 新特性 ##### 2.1 新特性 Spring ...

    spring-security-reference.pdf

    Spring Security是一个功能强大且高度可定制的认证和访问控制框架,它是针对Java应用程序的安全性需求而设计的。在本教程中,我们将深入介绍Spring Security的核心概念以及如何在项目中使用它。 首先,Spring ...

    cas 和spring security 单点登录 配置

    单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。在企业级应用中,SSO能够提供更便捷的用户体验,同时也增强了安全性。本篇将详细介绍如何...

    spring-security-reference

    - **CAS Sample**:介绍如何集成 CAS 单点登录服务。 - **Pre-Authentication Sample**:展示如何实现预认证机制。 #### 六、常用认证服务 - **机制、提供者和入口点**:介绍了 Spring Security 中的认证机制,...

    spring-security.介绍

    Spring Security 提供了多种安全服务,包括认证和授权机制、Web资源访问控制、业务方法调用控制、领域对象访问控制(ACL)、单点登录(CAS)、X509认证和信道安全管理。其中,Web资源的保护通常通过Servlet过滤器...

    cas-server-client-springsecurity.zip

    通过理解CAS的核心功能、MySQL的整合方式以及Spring Security客户端的配置,你可以搭建起一个安全的、单点登录的多应用环境。这个项目为开发者提供了一个起点,以便进一步定制和扩展以满足特定业务需求。

    Spring_Security-3.0.1_中文自学教程.pdf

    - `cas-spring-security-cas-client.jar`:集成了 CAS 单点登录协议。 - `openid-spring-security-openid.jar`:提供了 OpenID 认证支持。 - **获得源代码**:可以通过 SVN 或 GIT 获取 Spring Security 的源代码...

    Spring_Security-3.0.1_官方文档

    - **CAS (spring-security-cas-client.jar)**:实现了与 CAS 单点登录系统的集成。 - **OpenID (spring-security-openid.jar)**:支持 OpenID 认证。 - **获得源代码**:开发者还可以从官方仓库下载 Spring ...

    单点登录-cas学习项目源码

    单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。CAS(Central Authentication Service)是耶鲁大学开发的一个开源项目,它提供了一种集中...

    spring security 参考手册中文版

    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单点登录实例

    CAS(Central Authentication Service)单点登录系统是一种广泛应用于企业、教育机构等的权限管理解决方案,它允许用户在访问多个应用系统时只需要进行一次身份验证。本文将深入探讨CAS单点登录实例及其相关知识点。...

    Spring security

    Spring Security 的历史可以追溯到 Spring Framework 2.0 版本,最初作为一个独立项目,后来被整合进 Spring 生态系统中。随着版本迭代,Spring Security 不断引入新的特性和改进现有的功能,使其成为目前最流行的...

    Spring security 4 帮助文档(英文版)

    - `cas-spring-security-cas.jar`:CAS 单点登录支持。 - `openid-spring-security-openid.jar`:OpenID 支持。 #### 二、Spring Security 4.0 新特性与迁移 ##### 2.1 新特性 Spring Security 4.0 引入了许多...

    cas实现单点登录 功能

    部署完成后,需要在各个应用系统中集成 CAS Client,常见的有 Filter 集成方式和 Spring Security 集成方式。 四、CAS 登录流程 1. 用户打开应用系统,被重定向到 CAS Server 的登录页面。 2. 用户在 CAS Server ...

Global site tag (gtag.js) - Google Analytics