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

原创 2011年11月28日 15:55:38

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

 
Java代码  收藏代码
  1. <http auto-config='true' session-fixation-protection="none">  
  2.     <intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" />  
  3.     <intercept-url pattern="/**" access="ROLE_USER" />  
  4. </http>  
 
session-fixation-protection的值共有三个可供选择,none,migrateSession和newSession。默认使用的是migrationSession,如同我们上面所讲的,它会将原有session中的属性都复制到新session中。上面我们也见到了使用none来禁用session-fixation功能的场景,最后剩下的newSession会在用户登录时生成新session,但不会复制任何原有属性。

第四部分:spring security使用cas单点登录配置

spring security使用cas单点登录配置
  • zh350229319
  • zh350229319
  • 2016年01月14日 15:30
  • 6775

Spring Security 结合CAS登入登出配置文件详解

Spring Security配置文件
  • gz530
  • gz530
  • 2011年05月09日 10:12
  • 2825

Spring Security 结合CAS登入登出配置文件详解(备忘)

Spring Security配置文件 + expand sourceview plain xmlns:b="http://www.springframew...
  • luckarecs
  • luckarecs
  • 2011年11月24日 14:38
  • 3254

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

今天整合的业务系统使用了Spring-Security框架,并且集成了CAS-Client,CAS的版本是3.4 在CAS的单点注销下,原理是CAS在注销模块中,通过使用各个业务系统认证时所提供...
  • seng3018
  • seng3018
  • 2011年11月28日 15:55
  • 2955

cas单点登录系统:客户端(client)详细配置(包含统一单点注销配置)

Cas由两部分组成,Cas Server和Cas Client。Cas Server是Cas自己的服务端,而Cas Client是Cas客户端,往往客户端需要和我们具体的业务系统进行集成,这里我们主要...
  • eguid_1
  • eguid_1
  • 2016年04月28日 23:48
  • 2652

cas入门之二十三:单点登出基本机制

cas支持单点登出了,那么它的基本机制是什么呢? 当用户经cas认证成功之后,就可以访问集成于cas的所有应用,而无需登录。那么认证是基于cookie 的,因为cas在cookie是放了tgt,这...
  • zhurhyme
  • zhurhyme
  • 2014年08月12日 21:38
  • 6610

springboot + security +CAS 注意事项

上一篇文章里的SecurityConfig.java配置文件初始化的时候会设置cas登陆后的service路径,如下的serive为“localhost:8080/admin/index.html”,...
  • mushuntaosama
  • mushuntaosama
  • 2017年12月13日 09:20
  • 41

SpringBoot集成SpringSecurity+CAS

本文主要讲述如何通过SpringSecurity+CAS在springboot项目中实现单点登录和单点注销的功能。参考内容有Spring Security官方文档中的 1. 5. Java Conf...
  • jaune161
  • jaune161
  • 2017年09月22日 11:06
  • 1589

CAS单点登录-单点登出/退出/注销(十二)

CAS单点登录-单点登出/退出/注销(十二) 据说cas3.x开始支持单点注销,但我们目前讲的是5.1.x,当然我们加入了单点登录,一般来说都需要单点注销的,让个子系统支持单点注销需要做一些工...
  • u010475041
  • u010475041
  • 2017年10月14日 14:16
  • 2787

CAS单点登录执行流程登录、注销

CAs 登录和正常请求执行流程 在未登录情况下  一、浏览器访问客户端客户端拦截器:CAS Authentication Filter --》org.jasig.cas.client.au...
  • Mainstream_Code
  • Mainstream_Code
  • 2014年05月08日 10:45
  • 2802
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:整合了Spring-Security的业务系统无法通过CAS进行单点注销
举报原因:
原因补充:

(最多只允许输入30个字)