我是Spring Security的新手。 我已经实现了UserDetails来创建我自己的用户。我也有我的自定义userDetailsService。现在一切正常,但我需要在没有登录的情况下更新我的用户信息。如何做到这一点?我如何接收来自上下文的信息然后进行更改? 在此先感谢Spring Security如何在不登录的情况下更新userDetails
3
A
回答
3
如果用户未登录,则无法从SecurityContext获取它。这是将用户置于上下文中的登录过程。
只需使用UserDetailsService加载用户(UDS毕竟只是一个DAO),然后根据需要进行修改并保存。这会很有用,例如在管理用例中(例如管理员更正用户名中的拼写错误)。
让我知道,如果这不是你要求的。
编辑:
OK,以响应您的评论(我从内存中这样做,所以它可能不是100%):
SecurityContext context = SecurityContextHolder.getContext();
Authentication auth = context.getAuthentication();
CustomUser user = (CustomUser) auth.getPrincipal();
东西非常接近如果这不完全正确。要小心,因为如果用户没有真正登录,你将得到一个ClassCastException - 如果Spring Security匿名过滤器被激活,对getPrincipal()的调用将返回一个字符串“anonymousUser”。您当然可以轻松更新代码来处理这种可能性。
相关问题
- 1. Spring Security&CAS - 在不登录的情况下查看安全页面
- 2. 如何在不重新登录的情况下更新会话变量?
- 3. 如何使用Spring Security 3检索UserDetails?
- 4. 在没有Spring Security API的情况下实现SAML和传统登录
- 5. 如何在不更改rowversion的情况下更新记录
- 6. Spring Security UserDetails和用户名
- 7. Spring Security UserDetails最佳实践
- 8. 如何在Spring Security上下文中投射UserDetails?
- 9. 如何在不触及数据库的情况下为Grails Spring Security锁定登录速率限制器?
- 10. 如何在不加载orm的情况下更新记录?
- 11. Facebook登录Spring Security
- 12. Spring Security登录表
- 13. Spring Security Servlet登录
- 14. 如果在禁用cookies的情况下在Spring Security 3中如何重定向用户登录
- 15. Spring Security OAuth2不能在没有JWT的情况下工作
- 16. 如何在没有登录页面的情况下使用简单的Spring Security AuthenticationProvider?
- 17. Spring-security中的UserDetails @Autowired返回异常
- 18. Spring Security的登录页
- 19. 在不修改$ HOME的情况下更改登录路径
- 20. 如何在没有配置的情况下为自定义登录页面使用spring boot security?
- 21. 如何在不登录的情况下查看WordPress主题?
- 22. 如何在不使用SSL的情况下保护登录?
- 23. Facebook Like Box - 如何在不登录的情况下显示?
- 24. OAuth 2 - 如何在不提供权限的情况下登录
- 25. 如何在不使用数据库的情况下登录
- 26. 情况下,更新
- 27. 如何在不登录服务器的情况下重新启动sshd服务?
- 28. Grails + Spring Security单场登录
- 29. Spring Security登录失败
- 30. Spring Security表单登录
用户被锁定。但是,我需要更新它,而无需再次登录..我不知道该怎么做 –