gpt4 book ai didi

hibernate - 在 Hibernate 中更新后如何重新加载 Spring Security Principal?

转载 作者:行者123 更新时间:2023-12-03 08:38:51 25 4
gpt4 key购买 nike

这一定是一个普遍的问题......我觉得在谷歌搜索之后,我一定只是没有彻底四处寻找答案,或者没有人问过它......所以请原谅我。

我正在使用 Spring Security 和 Hibernate 等。

因此,用户/负责人已登录并对他们的个人资料进行了一些更改。

我使用我的 DAO 更新配置文件 (UserDetails),并且我希望我的 Principal 自动反射(reflect)此更新。

但是,当我再次获得校长时,我得到了肮脏的版本(来自我的初始登录)。

有谁知道我如何让 Spring Security 从 Hibernate 重新加载更新的 UserDetails?

最佳答案

OK 挖了一圈,终于找到了答案。

我们可以创建一个 UsernamePasswordAuthenticationToken 并将更新后的 Principal 分配给上下文。

Authentication authentication = new UsernamePasswordAuthenticationToken(userObject, userObject.getPassword(), userObject.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication);

另见“ How to manually set an authenticated user in Spring Security / SpringMVC”。

关于hibernate - 在 Hibernate 中更新后如何重新加载 Spring Security Principal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7889660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com