`
雨辰RainTime
  • 浏览: 113647 次
  • 性别: 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_中文官方文档

    ### Spring Security 3.0.1 中文官方文档知识点概览 #### 一、序言与入门 **1.1 Spring Security 是什么?** - **定义:** 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 ...

    Spring Security 3.0.3

    - **CAS (spring-security-cas-client.jar)**:支持 CAS 协议的单点登录。 - **OpenID (spring-security-openid.jar)**:支持 OpenID 身份验证。 ## 二、安全命名空间配置 ### 2.1 简介 Spring Security 提供了一...

    spring security3

    ### Spring Security 3.0.7.RELEASE:深入解析与应用实践 #### 一、Spring Security简介 **Spring Security** 是一个强大的、高度可定制的身份验证(Authentication)和授权(Authorization)框架。它为Java应用...

Global site tag (gtag.js) - Google Analytics