Qwe*_*rky 4 java cas spring-security
我有一个使用spring security和CAS(spring 3.0.5,cas 3.4.5)的应用程序但是当我登录会话时id没有变化.
当我登录CasAuthenticationFilter执行身份验证并且auth成功时它不会继续过滤器链,而是在其上设置身份验证SecurityContextHolder并调用successHandler.这会重定向到我请求的原始URL,该URL需要进行身份验证.该SessionManagementFilter从来没有得到一条缝呼叫会话策略,创造一个新的会话.
看来,AbstractAuthenticationFilter该CasAuthenticationFilter扩展都有自己的会话策略,但默认情况下NullAuthenticatedSessionStrategy是容易受到会话固定.问题是,当弹簧声称默认会阻止会话固定时,为什么默认策略容易受到攻击?
解决此问题的最佳解决方案是什么?
只有在使用命名空间时才会自动设置会话固定策略.如果您使用的是显式过滤器,那么您可以SessionFixationProtectionStrategy自己将过滤器注入过滤器.或者,如果应用程序中存在明显的验证后起始点,则可以在那里重新创建会话.
由于过滤器优先于会话认证策略的引入,并且通常以保守的方式引入更改,因此默认情况下可能不会出于历史原因设置会话固定版本.您可以打开一个更改请求,建议默认情况下它可能更好.
| 归档时间: |
|
| 查看次数: |
1886 次 |
| 最近记录: |