Spring Security - 匿名身份验证 - HttpSessionRequestCache

Vir*_*gic 1 java spring spring-security

请帮我解决这个问题。

void setCreateSessionAllowed(boolean createSessionAllowed)
的方法

org.springframework.security.web.savedrequest.HttpSessionRequestCache 类说

如果为 true,则表示允许在新的 HttpSession(默认)中存储目标 URL 和异常信息。在您不希望创建不必要的 HttpSession 的情况下(因为用户代理会知道失败的 URL,例如使用 BASIC 或 Digest 身份验证),您可能希望将此属性设置为 false。

所以我没有正确理解描述,而且我们正在使用一个产品,它的文档说将其设置为 false 将禁用匿名用户会话的创建。所以我的问题是,会话创建并将其与请求关联是 servlet 容器的工作。那么为什么使用这个方法(setCreateSessionAllowed)不会创建会话。 请验证我的理解是否正确。还

setCreateSessionAllowed(false), JSESSIONID 是否创建?

Nil*_*ils 5

HttpSessionRequestCache 保存用户会话中客户端最后请求的 URL。当 spring security 将您重定向到登录页面时,它会使用它来在成功登录后恢复 url。如果是基本或摘要身份验证,则直接进行身份验证或要求使用凭据重新发送请求。因此 URL 缓存不是必需的。

如果 setCreateSessionAllowed 设置为 true,则默认情况下会创建一个会话来存储最后一个 url。如果设置为 false,则仅在已创建会话的情况下才支持此功能。如果没有存储 url,spring security 将使用 spring security 配置中提供的默认目标 URL。

至于你的最后一个问题,我不清楚它将如何影响你提到的产品的匿名登录功能。