websocket 获取登录用户_奇怪,Spring Security 登录成功后总是获取不到登录用户信息?...

本文探讨了在Spring Security环境下,WebSocket获取登录用户信息时遇到的问题。通过问题复现、分析过滤器工作原理,揭示了由于过滤器配置错误导致登录后无法获取用户信息的原因,并提供了解决方案。
摘要由CSDN通过智能技术生成

今日干货

82d90edfb0274f0982a4f04d2756db61.png刚刚发表查看: 66666 回复:666

公众号后台回复 ssm,免费获取松哥纯手敲的 SSM 框架学习干货。

有好几位小伙伴小伙伴曾向松哥求助过这个问题。

一开始我觉得这可能是一个小概率 BUG,但是当问的人多了,我觉得这个问题对于新手来说还有一定的普遍性,有必要来写篇文章跟大家仔细聊一聊这个问题,防止小伙伴们掉坑。

视频看完了,如果小伙伴们觉得松哥的视频风格还能接受,也可以看看松哥自制的 Spring Boot + Vue 系列视频教程

以下是视频笔记。

1.问题复现

如果使用了 Spring Security,当我们登录成功后,可以通过如下方式获取到当前登录用户信息:

  1. SecurityContextHolder.getContext().getAuthentication()
  2. 在 Controller 的方法中,加入 Authentication 参数

这两种办法,都可以获取到当前登录用户信息。具体的操作办法,大家可以看看松哥之前发布的教程:Spring Security 如何动态更新已登录用户信息?。

正常情况下,我们通过如上两种方式的任意一种就可以获取到已经登录的用户信息。

异常情况,就是这两种方式中的任意一种,都返回 null。

都返回 null,意味着系统收到当前请求时并不知道你已经登录了(因为你没有在系统中留下任何有效信息),这会带来两个问题:

  1. 无法获取到当前登录用户信息。
  2. 当你发送任何请求,系统都会给你返回 401。

2.顺藤摸瓜

要弄明白这个问题,我们就得明白 Spring Security 中的用户信息到底是在哪里存的ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值