我在我的项目中使用spring security,它部署在tomcat服务器中。
我正在使用以下方法登录所有用户,
public static void Timeconvert(ListBox l)
{
foreach (var item in l.Items)
{
int x, int y, int z; //It just to show you my thought
if(item.format = 00:x:y:z)
{
int result = x*60 +y + z/60 ;
item = result.Tostring();
}
}
}
方法在重启前按预期正常工作。在我关闭并重新启动tomcat之后,登录会话保持正常,因为tomcat在关闭并在启动时恢复它们时会持续存在。但是当我调用这个@Autowired
private SessionRegistry sessionRegistry;
public List<String> getAllActiveUsers() {
String currentUsername = getCurrentUserName();
return sessionRegistry.getAllPrincipals().stream()
.filter(u -> !sessionRegistry.getAllSessions(u, false).isEmpty()
&& !((User) u).getUsername().equals(currentUsername))
.map(o -> ((User) o).getUsername())
.collect(Collectors.toList());
}
方法时,它会返回一个空列表。似乎已恢复的会话未添加到sessionRegistry中。如果你能帮助我解决这个问题,我将非常感激。