SecurityContextHolder里的Principal信息是陈旧的
来源:6-4 重构用户名密码登录

灵魂机器
2017-12-01
我试了下Spring OAuth2里使用RedisTokenStore,然后用SecurityContextHolder.getContext().getAuthentication(); 取得用户信息,发现信息还是旧的,比如MySQL里用户已经更新了他的lastName,但是SecurityContextHolder里的Principal 信息还是旧的。重启了SpringBoot服务器还是旧的。请问这个是什么原因造成的?
我查看了下Redis里面的内容,发现这个key "refresh_auth:40b5329b-4ba9-4696-ab52-366532558436"里面保存了Authentication信息,里面的lastName是旧的,我怀疑SecurityContextHolder里的Authentication信息是从Redis缓存中取的
写回答
1回答
-
是的,所以一般只在token里存个id,然后在服务中再用id去获取用户信息。
012017-12-07
Spring Security技术栈开发企业级认证与授权
Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全
2662 学习 · 1561 问题
相似问题