Spring Security如何在不登录的情况下更新用户详细信息

2024-01-11

我是 Spring Security 的新手。 我已经实现了 UserDetails 来创建我自己的用户。我还有我的自定义 userDetailsS​​ervice。现在一切正常,但我需要在不登录的情况下更新有关我的用户的信息。如何做到这一点?我如何从上下文中接收信息然后更改它? 提前致谢


如果用户未登录,则无法从 SecurityContext 获取它。登录过程将用户置于上下文中。

只需使用 UserDetailsS​​ervice 加载用户(UDS 毕竟只是一个 DAO),然后根据需要进行修改和保存。这会很有用,例如在管理用例中(例如管理员更正用户名中的拼写错误)。

如果这不是您要问的,请告诉我。

EDIT:

好的,针对您的评论(我是凭记忆做的,所以可能不是 100%):

SecurityContext context = SecurityContextHolder.getContext();
Authentication auth = context.getAuthentication();
CustomUser user = (CustomUser) auth.getPrincipal();

如果这不完全正确的话,那就非常接近了。但要小心,因为如果用户实际上没有登录,您将收到 ClassCastException - 如果激活了 Spring Security 匿名过滤器,则对 getPrincipal() 的调用将返回字符串“anonymousUser”。您当然可以轻松更新代码来处理这种可能性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Security如何在不登录的情况下更新用户详细信息 的相关文章

随机推荐

  • 是否有一个 monad 没有相应的 monad 转换器(IO 除外)?

    到目前为止 我遇到的每个 monad 可以表示为一种数据类型 都有一个相应的 monad 转换器 或者可以有一个 是否存在这样一个不可拥有的单子 或者所有的 monad 都有相应的转换器吗 By a 变压器t对应单子m我的意思是t Iden
  • WiX Burn 3.6 beta - 自定义 UI 示例

    有没有好的参考 例子WiX http en wikipedia org wiki WiX Burn http en wikipedia org wiki WiX Burn3 6 自定义UI 我用谷歌搜索了一下 但它们都是信息的碎片 WiX
  • SQL Server varchar(50) 和 varchar(128) 性能差异[重复]

    这个问题在这里已经有答案了 可能的重复 varchar 500 比 varchar 8000 有优势吗 https stackoverflow com questions 2009694 is there an advantage to v
  • Flask-SQLAlchemy 的隔离级别

    我无法理解数据库隔离级别如何与 Flask SQLAlchemy 配合使用 尤其是如何really提交更改或关闭会话 这是我的问题的背景 我正在将 Flask SQLAlchemy 用于带有 MySQL 数据库的 Flask 项目 这是我的
  • “/”应用程序中的服务器错误。网络平台

    问候 我使用 ASP Net 3 5 和 C 开发了一个网站 它与 Visual Stdio 2010 配合良好 我将我的网站上传到我的域的公共文件夹下 我第一次在我的网站上进行午餐测试 http wecoders com Habib cu
  • Python 列表([]) 和 []

    from cs1graphics import from math import sqrt numLinks 50 restingLength 20 0 totalSeparation 630 0 elasticityConstant 0
  • 使用 bootstrap 3.37 header 下拉菜单并将 jquery 翻译为 knockoutJS

    我正在查看这篇文章 以在我的 mvc5 knockoutjs 解决方案中应用带有下拉菜单的标题菜单 https jdmdigital co news codex bootstrap 3 secondary dropdown menu htt
  • “gem update --system 在 Debian 上被禁用”错误

    当我尝试更新 ruby gems 通过运行 gem update system 时 出现此错误 ERROR While executing gem RuntimeError gem update system is disabled on
  • 每个目标都有不同的故事板本地化

    我有一个有 3 个目标的项目 每个目标只需要支持一种语言 但每个目标的语言都不相同 目前我有 目标 1 西 目标 2 西 目标 3 点 我的大部分字符串都在 Localized strings 文件中 我只是为每个目标指定一个不同的文件 然
  • Xamarin 表单中的轮播视图自动滑动

    我的页面底部有一个轮播视图 现在我希望图像每 2 秒自动滚动一次 我已经实现了相同的并且工作正常 Device StartTimer TimeSpan FromSeconds 2 gt SlidePosition if SlidePosit
  • 关于硬链接

    有人可以解释一下为什么内核不允许我们建立到目录的硬链接吗 无论是因为它打破了文件系统有向无环图结构的规则 还是因为其他原因 如果允许的话还会出现什么其他并发症 回到第 7 版 或版本 7 UNIX 时代 没有系统调用mkdir 2 and
  • 如何从具有字典列表的 json 将数据集加载到 pytorch torchtext.data.TabularDataset 中?

    我有一个字典列表如下 text The Fulton County Grand tags AT NP TL NN TL JJ TL text The jury further said tags AT NN RBR VBD 每个字典的每个值
  • 正则表达式查找一对周围数字不同的相邻数字

    我想找出是否有两个相邻的相同数字 并且这对数字前后的数字不同 例如 123456678 应该匹配 因为有一个双 6 1234566678 不应匹配 因为不存在具有不同周围数字的双精度数 12334566 应该匹配 因为有两个 3 到目前为止
  • 在 Gradle 构建脚本中访问 Teamcity 构建号

    如何在 Teamcity 执行的 Gradle 脚本中访问内部版本号和 VCS 结账号 在蚂蚁我可以使用 build number and build vcs number 1 分别 谢谢 这些只是 TeamCity 为 Ant Gradl
  • Java simpledateformat 英国时间

    我使用简单的日期格式来允许用户指定他们发送数据的时区 DateFormat df new SimpleDateFormat yyyy MM dd HH mm ss z 这工作正常 例如 df parse 2009 05 16 11 07 4
  • Inspired Lua程序在电脑和计算器上的不同

    I am attempting to create a simple quadratic formula program for my TI Nspire CX CAS I seem to have everything correct a
  • 如何向 JQuery 弹出窗口添加换行符

    如何在弹出窗口内容中添加换行符 换行符标记和换行符都不起作用 这就是我正在尝试的 foo hover function this popover title Bar content Line 1 br Line 2 n Line 3 pop
  • Flash逆向工程[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么我们不能一次从 System.in 读取一个字符?

    下面的程序打印标准输入上写入的每个字符 但仅在写入换行符后才打印 至少在我的系统上 public class Test public static void main String args throws java io IOExcepti
  • Spring Security如何在不登录的情况下更新用户详细信息

    我是 Spring Security 的新手 我已经实现了 UserDetails 来创建我自己的用户 我还有我的自定义 userDetailsS ervice 现在一切正常 但我需要在不登录的情况下更新有关我的用户的信息 如何做到这一点