gpt4 book ai didi

java - 如何在 Spring 进行模仿

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:08 25 4
gpt4 key购买 nike

我们有多个门户 Employer-portal、Employee-portal 和 Admin-portal ,这三个门户都是单独部署的。所有门户都遵循 spring-mvc 模式。我们使用了 spring security 并使用 openId 进行登录和注销。

现在我们希望提供管理门户功能,管理员可以模拟雇员和雇主并代表他们做事。

任何有经验的人都可以指导我如何处理它,或者可以分享任何好的文章,我可以阅读这些文章以获得对它的良好了解。

谢谢

最佳答案

从你的问题来看,听起来你并不真正想要“runAsManager”。

一种方法是使用“模拟”方法之类的方法,当然,该方法本身需要受到保护,可能使用方法级安全注释。

为此,您可以使用以下内容:

@PreAuthorize("hasRole('ROLE_ADMIN')")

本质上,您需要做的是构建一个身份验证对象并用它填充安全上下文(ThreadLocal)。

类似于:

Authentication other = createAuthentication(someUsername); //Implement this
SecurityContextHolder.getContext().setAuthentication(other);

我可以看到这种方法的吸引力,但是当然,这是否是个好主意取决于您允许管理员代表用户执行哪些操作。花他们的钱?看到他们的电子邮件吗?如果用例有效,至少审核此类操作。

一旦像这样冒充其他用户,当前用户将需要注销并再次登录才能切换回自己的帐户。

关于java - 如何在 Spring 进行模仿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25546554/

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