我正在使用 Spring Security 通过 OpenID 进行身份验证的应用程序。当用户登录时,一些权限会加载到他的会话中。
我拥有完全权限的用户,可以修改其他用户的权限(撤销、添加角色)。我的问题是,如何动态更改用户会话权限? (不能使用 SecurityContextHolder 因为我想更改另一个用户会话)。
简单的方法:使用户会话无效,但是如何呢?更好的方法:使用新权限刷新用户会话,但是如何?
原文由 Aure77 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在使用 Spring Security 通过 OpenID 进行身份验证的应用程序。当用户登录时,一些权限会加载到他的会话中。
我拥有完全权限的用户,可以修改其他用户的权限(撤销、添加角色)。我的问题是,如何动态更改用户会话权限? (不能使用 SecurityContextHolder 因为我想更改另一个用户会话)。
简单的方法:使用户会话无效,但是如何呢?更好的方法:使用新权限刷新用户会话,但是如何?
原文由 Aure77 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答963 阅读
4 回答876 阅读
1 回答965 阅读✓ 已解决
583 阅读
486 阅读
如果您需要动态更新登录用户的权限(当这些更改时,无论出于何种原因),当然不必注销和登录,您只需要重置
Authentication对象(安全令牌) 在春季SecurityContextHolder。例子: