You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Security SAML集成Spring Session后SESSION存储消息找不到问题

问题根因

你遇到的异常由两个核心原因共同导致:

  1. 引入org.springframework.session依赖后,Spring Session的自动配置优先级高于ServletContextInitializer的会话配置,覆盖了你自定义的Session Cookie名称、属性
  2. Spring Security默认开启的会话固定保护机制,会在用户身份认证成功后自动生成新的会话ID规避攻击,你原有会话中存储的SAML请求标识没有被迁移到新会话,导致IDP回调时无法匹配InResponseToField
解决方案

1. 修复自定义Session Cookie配置不生效问题

替换原有ServletContextInitializer配置,直接注册CookieSerializer Bean,Spring Session会自动读取该配置,不会再覆盖自定义的Cookie属性:

import org.springframework.session.web.http.DefaultCookieSerializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.beans.factory.annotation.Value;

@Configuration
public class SessionConfig {

    @Value("${server.servlet.session.cookie.secure:false}")
    private boolean secureCookie;

    @Bean
    public DefaultCookieSerializer cookieSerializer() {
        DefaultCookieSerializer serializer = new DefaultCookieSerializer();
        // 自定义Cookie名称,不会再被覆盖
        serializer.setCookieName("mujinaSpSessionId");
        serializer.setUseSecureCookie(secureCookie);
        serializer.setUseHttpOnlyCookie(true);
        return serializer;
    }
}

2. 解决会话ID变更导致SAML标识丢失问题

二选一即可:

方案A:配置会话固定保护为属性迁移模式

显式指定会话固定保护策略为migrateSession,该模式会在变更会话ID的同时,将原有会话的所有属性完整迁移到新会话中,SAML存储的请求标识也会被保留:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        // 省略你原有其他HttpSecurity配置
        .sessionManagement()
            .sessionFixation().migrateSession();
}

方案B:针对SAML回调路径单独适配

如果你的业务场景不需要对SAML断言回调路径做会话固定防护,也可以单独调整该路径的策略(SAML默认回调路径为/saml/SSO,可根据你实际配置修改):

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        // 省略你原有其他HttpSecurity配置
        .sessionManagement()
            .sessionFixation().migrateSession()
            .and()
        .authorizeRequests()
            .antMatchers("/saml/SSO").permitAll();
            // 省略你原有其他权限配置
}

内容的提问来源于stack exchange,提问作者ropenrom24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:15:03