@Override
    public Object attempt(Connection connection) throws Exception {
      if (!connection.getServer().getRequiresCredentials()) {
        return null;
      }

      try {
        return parentAttempt(connection);
      }
      // if login failed for auth expired reason, try again once more
      catch (AuthenticationExpiredException first) {
        getMessage().clear();
        try {
          return parentAttempt(connection);
        } catch (AuthenticationExpiredException second) {
          throw new AuthenticationFailedException(second.getMessage(), second);
        }
      }
    }
Sends the auth credentials to the server for a particular user. Used in multiple user mode of
authentication.

@param location The ServerLocation instance whose connection instance will be used to perform
       the operation.
@param pool The connection pool to use for this operation.
@return Object unique user-id.
geode-core/src/main/java/org/apache/geode/cache/client/internal/AuthenticateUserOp.java