code: @Override
      public Object addTokenToDistributedMap(Object key, Object value) {
          String keyStr = (String) key;
          TokenManager tm = LoggedOutTokenCacheImpl.tokenManager.getService();
          int timeOut = -1;
          try {
              byte[] tokenBytes = AuthenticationHelper.copyCredToken(Base64Coder.base64DecodeString(keyStr));
              Token token = tm.recreateTokenFromBytes(tokenBytes);
              if (token != null)
              {
                  long tokenExp = token.getExpiration();
                  long calcTimeOut = tokenExp - System.currentTimeMillis();
                  timeOut = (int) calcTimeOut / 1000;
                  String userName = token.getAttributes("u")[0];
                  if (userName != null)
                      value = userName;
              }
  
          } catch (InvalidTokenException e) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Token is not valid so do not cache it " + e.getMessage());
              }
              return null;
          } catch (TokenExpiredException e) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Token is exipired so do not cache it " + e.getMessage());
              }
              return null;
          }
  
          return putDistributedObjectLoggedOutToken(key, value, timeOut);
      }
docs: /*
  Add the token to the DistributedMap, will create the loggedOutTokenMap if it does not exist.
  Calculates the about of time left on the token so the DistributedMap will expire the entry at
  time.