spring - 如何从 SessionRegistry 获取用户名,它总是返回 ADMIN 用户
问题描述
我正在使用 Spring Security,我想创建一个页面来显示所有当前登录的用户。
为了实现这一点,我有这个代码。
@RequestMapping(value="/users" , method=RequestMethod.GET)
public String users(Model model)
{
List<Object> loggedUsers = sessionRegistry.getAllPrincipals();
for (Object principal : loggedUsers) {
final User loggedUser = (User) principal;
model.addAttribute("loggedInUser", loggedUser);
}
List<Benutzer> users = userRepository.findAll();
if(users !=null)
{
model.addAttribute("benutzern",users);
}
return "users";
}
但是,我总是只得到 ADMIN 用户。
在最终用户登录用户=(用户)主体;我总是得到我的 ADMIN 用户以及我的其他用户。所以这很完美。
我认为我的问题出在网页上,但我不知道具体在哪里。
当前登录的用户如下:
<table class="table table-striped">
<thead>
<tr>
<th>Benutzername</th>
<th>Anzeigename</th>
<th>Dienstnummer</th>
</tr>
</thead>
<dl th:each="user : ${loggedInUser}">
<tr>
<td th:text="${user.username}">benutzername</td>
</tr>
</table>
也许有人可以指出我正确的方向。
提前致谢。
解决方案
好吧,在提出问题后,我立即找到了解决方案。我不得不更改以下行。我不知道我是如何监督这一点的。
model.addAttribute("loggedInUser", loggedUsers);
推荐阅读
- tensorflow - 内核似乎已经死了。会自动重启tensorflow2.0
- mql5 - 首先调用哪个事件?OnTick() 还是 OnTimer()?
- c - mingw64 system("command") 与 shell 中的 "command" 不同
- python - 根据其他列的 if-else 填充 pandas DataFrame 的新列
- javascript - 盖茨比:上下文更新导致无限渲染循环
- html - 隐藏第 2 层和第 3 层菜单以在悬停时显示
- c++ - 共享指针上的原子操作,c++ 版本
- amazon-web-services - 读取包含大量小对象的整个 s3 存储桶的最有效方法是什么?
- visual-studio - 我无法在 Visual Studio 2017 中删除 Team Foundation Server URL 的名称
- android - 在 react-native 中取消获取请求