spring security 无法获取登录用户

起因:springboot 2.7.x 升级到 3.5.x

导致 spring security 升级

导致问题原因在于默认持久化改变了

官方文档

https://docs.spring.io/spring-security/reference/6.5/servlet/authentication/session-management.html#requireexplicitsave

解决方案 二选一

改配置 SecurityFilterChain 中加上

复制代码
.securityContext(securityContext -> securityContext
            .requireExplicitSave(false) // 允许自动保存,避免手动操作
        );

代码中保存

复制代码
	// in login controller
    
    @Autowired
    private SecurityContextRepository securityContextRepository;
   
    @PostMapping("/login")
    public ResponseEntity<?> login(@RequestBody LoginRequest req, 
                                   HttpServletRequest request, 
                                   HttpServletResponse response) {
            //...... do login and get auth

            // 创建并设置 SecurityContext
            SecurityContext context = SecurityContextHolder.createEmptyContext();
            context.setAuthentication(auth);
            SecurityContextHolder.setContext(context);

            // 手动保存到 Repository(如 Session)
            securityContextRepository.saveContext(context, request, response);

            return ResponseEntity.ok("Login success");
    }
相关推荐
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
Spring‑AI Document 对象 JSON 字段详解
人工智能·spring·json
萌动的小火苗1 小时前
1、python基础面试题
java·开发语言·python
运维行者_1 小时前
网络监控与ITSM集成:从告警到工单,实现运维自动化闭环
开发语言·网络·分布式·后端·架构·flask·php
子兮曰1 小时前
解剖 Claude Code:从入口架构逆向工程看 AI 编程工具的信任边界设计
前端·后端·claude
颜进强2 小时前
前端看后端 15:什么是 DNS?
前端·后端·ai编程
文艺理科生2 小时前
LangChain.js-v1-记忆管理最佳实践
前端·javascript·后端
麻雀聊技术2 小时前
一重启 AI 就失忆?用 Spring AI + PostgreSQL 3步搞定“长期记忆”持久化(附完整代码)
java·spring·openai
子兮曰2 小时前
Elysia vs Hono 完整性能对比:Bun 专属优化还是跨平台通用,2026 实测数据给出的答案
前端·后端·typescript
码农进化录2 小时前
Java 程序员的 AI 进化论 | LangChain4j 入门,Java 开发者的 AI 应用框架
java·spring boot·openai
小满zs2 小时前
Go语言第七章(Map)
后端·go