springsecurity集成cas时session固化攻击和logout功能冲突

Catelyn 发布于 2014/08/07 10:17
阅读 1K+
收藏 0

具体问题见:

http://forum.spring.io/forum/spring-projects/security/93899-ja-sig-cas-server-single-sign-out-feature-conflict-with-session-fixation-protection

貌似很早就放spring的jira了,但是我看源码还是有这个问题,客户端登出需要配

org.jasig.cas.client.session.SingleSignOutFilter

这个Filter,这个Filter必须在CasAuthenticationFilter之前,因为放在它之后就没有带ticket参数了,它会识别带ticket参数的url,然后拿到session放到本地的一个hashmap存储session,但是在登录成功之后

<bean id="casFilter" class="org.springframework.security.cas.web.CasAuthenticationFilter">
  		<property name="authenticationManager" ref="authenticationManager"/>
  		<property name="sessionAuthenticationStrategy" ref="concurrentSessionControlStrategy"/>
	</bean>
	<bean id="concurrentSessionControlStrategy" class="org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy">
        <constructor-arg ref="sessionRegistry"/>
    </bean>



这个concurrentSessionControlStrategy会建立一个新session,将旧session copy过去,那么 SingleSignOutFilter本地存储的session这时候已经失效了,这个Filter根本没意义,难道要自己实现一个么?

加载中
返回顶部
顶部