code: protected boolean syncCheckLoginSessionIfNeeds(USER_BEAN userBean) {
          if (!(userBean instanceof SyncCheckable)) {
              return true; // means no check
          }
          final SyncCheckable checkable = (SyncCheckable) userBean;
          final OptionalThing<LocalDateTime> checkDt = checkable.getLastestSyncCheckTime(); // might be null
          final LocalDateTime currentDt = timeManager.currentDateTime();
          if (!needsLoginSessionSyncCheck(userBean, checkDt, currentDt)) {
              return true; // means no check
          }
          if (logger.isDebugEnabled()) {
              final ID userId = userBean.getUserId();
              final String checkDisp = checkDt.map(dt -> new HandyDate(dt).toDisp("yyyy/MM/dd HH:mm:ss")).orElse(null);
              logger.debug("...Sync-checking login session: userId={}, checkDate={}", userId, checkDisp);
          }
          checkable.manageLastestSyncCheckTime(currentDt); // update latest check date
          return findLoginSessionSyncCheckUser(userBean).map(loginUser -> {
              handleLoginSessionSyncCheckSuccess(userBean, loginUser);
              return true;
          }).orElseGet(() -> { // the user might be assigned here
              logger.debug("*The user already cannot login: {}", userBean);
              logout(); // remove user info from session
              return false; // means check NG
          });
      }
docs: ----------------------