gpt4 book ai didi

java - Spring Security - 如何动态更改用户角色?

转载 作者:行者123 更新时间:2023-11-30 05:31:25 26 4
gpt4 key购买 nike

我有一个关于在运行时动态更改角色的问题。假设我们有一个社交网络应用程序(如 Facebook),并且我们使用 Spring security 进行身份验证/授权。

当某人打开他的主页时,此人具有管理员角色,并且可以使用他的主页执行所有操作。然而,当他访问另一个 friend 的主页时,他应该只有 USER 角色,该角色只能执行一些受限制的操作(例如,他不能删除 friend 主页中的帖子)。如果我们使用 AuthenticationManagerBuilder 那么我们只能为每个用户设置一个固定角色。

谁能帮我解答这个问题吗?

谢谢。

最佳答案

我认为你应该过度思考你的概念。用户始终是用户。拥有主页的用户是 userWithHomepage真正的管理员就是管理员。

您需要在页面上检查当前用户是否具有当前页面的特权 - 并赋予他在此站点上的角色。

所以“UserWithHomepage”来到了他自己的主页,你检查一下:这个用户在这个网站上是否有特权?如果是:激活该网站上的管理功能。如果您向他的 userContext 添加一个角色,他也可以作为该角色访问其他站点。我认为,这是一个安全漏洞。

因此,只需在 Controller 上设置一个标记,或者每次检查是否发生了某些情况(实例化、按钮单击等),如果用户有权限这样做。

关于java - Spring Security - 如何动态更改用户角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57458474/

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