0
回答
springsecurity集成cas时session固化攻击和logout功能冲突
终于搞明白,存储TCO原来是这样算的>>>   

具体问题见:

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根本没意义,难道要自己实现一个么?

举报
Catelyn
发帖于3年前 0回/1K+阅
顶部