我正在使用 spring 提供的 Switch 用户过滤器来模拟用户。
如何获取在 SwitchUserFilter 中模拟的原始用户。
我正在做的步骤:
例。
1. Log in with User1
2. Impersonting to the User2. (user1 impersonate User2)
3. In Filter I am getting **authentication.getName()** as **User2**
4. While switching back to Original I am getiing **authentication.getName()** as **Null**
现在我的需求是我想在 swtichback 时在过滤器中获取原始用户 (User1)。
有可能吗。
请推荐。 让我知道任何人需要更多的意见。请评论。
提前致谢。
最佳答案
这是您访问原始用户的方式:
Collection<? extends GrantedAuthority> authorities = SecurityContextHolder.getContext().getAuthentication().getAuthorities();
for (GrantedAuthority grantedAuthority : authorities) {
if (SwitchUserFilter.ROLE_PREVIOUS_ADMINISTRATOR.equals(grantedAuthority.getAuthority())) {
System.out.println(((SwitchUserGrantedAuthority) grantedAuthority).getSource().getPrincipal());
}
}
关于spring - 如何在冒充其他用户后获得原始用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32966613/