Spring Security每次请求需登录?会话创建策略配置疑问
问题解答
在Spring Security 6.1+(包含你使用的6.2.1版本)中,HttpBasic认证的默认会话创建策略确实发生了变更,这就是你必须显式配置SessionCreationPolicy.IF_REQUIRED才能复用会话的核心原因:
- 6.1版本之前,Spring Security对HttpBasic认证默认采用
SessionCreationPolicy.IF_REQUIRED,首次认证成功后会自动创建会话,后续请求通过会话ID维持登录状态,无需重复提交凭据。 - 6.1及之后版本,为贴合HttpBasic协议的无状态设计特性,默认会话策略改为
SessionCreationPolicy.STATELESS——服务器不会创建或保存会话,客户端必须在每一次请求中携带用户名和密码凭据,这就导致了你不配置时每次请求都需要重新登录的现象。
你看到的官方文档描述可能是针对6.1之前的版本,或是未明确区分HttpBasic场景下的特殊默认行为。
你的配置中显式设置SessionCreationPolicy.IF_REQUIRED后,会覆盖HttpBasic的默认无状态策略,让服务器在需要时创建会话,从而实现登录状态的持久化复用。
内容的提问来源于stack exchange,提问作者Thomas Auinger
相关产品推荐
相关产品推荐

