Spring安全sessionRegistry#getAllPrincipals在tomcat重启后返回空

时间:2017-11-25 12:55:37

标签: tomcat spring-security session-management

我在我的项目中使用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中。如果你能帮助我解决这个问题,我将非常感激。

0 个答案:

没有答案