【发布时间】:2017-11-05 16:29:07
【问题描述】:
我希望您能帮助我了解如何实现此功能: admin 使用 sessionRegistry.getAllPrincipals() 获取所有登录用户,然后可以注销某人。 我知道如何注销当前用户(session.invalidate()),但不知道如何强制注销其他用户。
这段代码让我所有登录的用户
public List<User> getAllLoggedInUsers() {
List<Object> principals = sessionRegistry.getAllPrincipals();
List<User> usersNamesList = new ArrayList<>();
for (Object principal : principals) {
if (principal instanceof org.springframework.security.core.userdetails.User) {
usersNamesList.add(dao.findByLogin(((org.springframework.security.core.userdetails.User) principal).getUsername()));
}
}
return usersNamesList;
}
非常感谢。
编辑1:我想要下一个:管理员选择一个用户,禁止它(更改数据库中的信息),然后如果该用户处于活动状态 - 将他注销。
【问题讨论】:
-
我猜,最简单的解决方案是重启应用服务器。这将终止所有会话。
-
@KrishnaKuntala 我不需要)我只是想弄清楚如何实现这个功能。
标签: spring spring-mvc spring-security