code: @Override
    public boolean login() throws LoginException {
      Callback[] callbacks = new Callback[1];
      callbacks[0] = new NameCallback("user name: ");
      try {
        mCallbackHandler.handle(callbacks);
      } catch (IOException | UnsupportedCallbackException e) {
        throw new LoginException(e.getMessage());
      }
  
      String userName = ((NameCallback) callbacks[0]).getName();
      if (!userName.isEmpty()) {
        mUser = new User(userName);
        return true;
      }
      return false;
    }
docs: Retrieves the user name by querying the property of
  {@link PropertyKey#SECURITY_LOGIN_USERNAME} through {@link AppCallbackHandler}.
  
  @return true if user name provided by application is set and not empty
  @throws LoginException when the login fails