gpt4 book ai didi

java - 带有 CAS 的 Spring Security 跳过 session 固定保护

转载 作者:搜寻专家 更新时间:2023-11-01 01:44:48 31 4
gpt4 key购买 nike

我有一个使用 spring security 和 CAS(spring 3.0.5,cas 3.4.5)的应用程序,但是当我登录时, session ID 没有改变。

当我登录 CasAuthenticationFilter 时执行身份验证,如果身份验证成功,它不会继续过滤器链,而是在 SecurityContextHolder 上设置身份验证并调用成功处理程序。这将重定向到我请求的需要身份验证的原始 URL。 SessionManagementFilter 永远不会调用 session 策略来创建新 session 。

CasAuthenticationFilter 扩展的 AbstractAuthenticationFilter 似乎有自己的 session 策略,但默认的是 NullAuthenticatedSessionStrategy,这很容易受到 session 固定的影响。问题是为什么默认策略易受攻击,当 spring claims to prevent session fixation by default

解决此问题的最佳解决方案是什么?

最佳答案

session 固定策略仅在您使用命名空间时自动设置。如果您使用的是显式过滤器,那么您只需注入(inject)一个 SessionFixationProtectionStrategy自己进入过滤器。或者,如果您的应用程序中有一个明显的身份验证后起点,您可以在那里重新创建 session 。

由于历史原因, session 固定版本可能没有默认设置,因为过滤器早于 session 身份验证策略的引入,并且更改通常以保守的方式引入。您可以打开一个更改请求,建议默认情况下它可能更好。

关于java - 带有 CAS 的 Spring Security 跳过 session 固定保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526425/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com