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

在本地开发环境禁用Spring Security会话Cookie的Secure属性

Spring Security 6.2.0 本地开发禁用SESSION Cookie的Secure属性

问题核心在于Spring Security会覆盖Servlet容器的Cookie配置,仅设置server.servlet.session.cookie.secure = false不足以生效,需要在Spring Security的配置中显式关闭Secure属性。

解决方案

方式一:Java配置类

在Spring Security配置类中,通过sessionManagement的cookieConfig显式指定secure(false):

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(auth -> auth.anyRequest().authenticated())
            // 保留原有登录逻辑配置,比如formLogin或自定义successHandler
            .formLogin(form -> form.successHandler(yourAuthenticationSuccessHandler))
            .sessionManagement(session -> session
                .cookieConfig(cookie -> cookie
                    .secure(false) // 核心配置:关闭Secure属性
                    .httpOnly(true) // 保持HttpOnly增强安全性,按需调整
                    .sameSite(SameSitePolicy.LAX) // 按需调整SameSite策略
                )
            );
        return http.build();
    }
}

方式二:YAML配置

如果偏好配置文件,添加Spring Security专属的Cookie配置:

spring:
  security:
    session:
      cookie:
        secure: false
server:
  servlet:
    session:
      cookie:
        secure: false

关键说明

  • Spring Security的Session Cookie配置优先级高于Servlet容器的全局配置,必须显式指定secure(false)才能覆盖默认行为。
  • 建议仅在本地开发环境启用该配置,可通过Spring Profile隔离环境:
    • Java配置添加@Profile("dev")注解
    • YAML配置使用spring.config.activate.on-profile: dev区分配置

验证:重启服务后,打开Firefox开发者工具(F12)→ 存储 → Cookie,查看SESSION Cookie的Secure属性是否已取消。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 00:42:05