public boolean needResetLogin(ServletRequest request) {
   if (!sessionManagers.isEmpty()) {
     for (NuxeoAuthenticationSessionManager sm : sessionManagers.values()) {
       if (sm.needResetLogin(request)) {
         return true;
       }
     }
   }
   return false;
 }
 public boolean canBypassRequest(ServletRequest request) {
   if (!sessionManagers.isEmpty()) {
     for (String smName : sessionManagers.keySet()) {
       NuxeoAuthenticationSessionManager sm = sessionManagers.get(smName);
       if (sm.canBypassRequest(request)) {
         return true;
       }
     }
   }
   return false;
 }
 public void invalidateSession(ServletRequest request) {
   if (!sessionManagers.isEmpty()) {
     for (String smName : sessionManagers.keySet()) {
       NuxeoAuthenticationSessionManager sm = sessionManagers.get(smName);
       sm.onBeforeSessionInvalidate(request);
     }
   }
   HttpServletRequest httpRequest = (HttpServletRequest) request;
   HttpSession session = httpRequest.getSession(false);
   if (session != null) {
     session.invalidate();
   }
 }
  public void onAuthenticatedSessionCreated(
      ServletRequest request,
      HttpSession session,
      CachableUserIdentificationInfo cachebleUserInfo) {

    NuxeoHttpSessionMonitor.instance()
        .associatedUser(session, cachebleUserInfo.getPrincipal().getName());

    if (!sessionManagers.isEmpty()) {
      for (String smName : sessionManagers.keySet()) {
        NuxeoAuthenticationSessionManager sm = sessionManagers.get(smName);
        sm.onAuthenticatedSessionCreated(request, session, cachebleUserInfo);
      }
    }
  }
  public HttpSession reinitSession(HttpServletRequest httpRequest) {
    if (!sessionManagers.isEmpty()) {
      for (String smName : sessionManagers.keySet()) {
        NuxeoAuthenticationSessionManager sm = sessionManagers.get(smName);
        sm.onBeforeSessionReinit(httpRequest);
      }
    }

    HttpSession session = httpRequest.getSession(true);

    if (!sessionManagers.isEmpty()) {
      for (String smName : sessionManagers.keySet()) {
        NuxeoAuthenticationSessionManager sm = sessionManagers.get(smName);
        sm.onAfterSessionReinit(httpRequest);
      }
    }
    return session;
  }