private boolean acquireTokenSilentAsync(
      String authority, String resourceUrl, String clientId, String userId) {

    final AuthenticationContext authContext;
    try {
      authContext = getOrCreateContext(authority);
    } catch (Exception e) {
      callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, e.getMessage()));
      return true;
    }

    authContext.acquireTokenSilent(
        resourceUrl, clientId, userId, new DefaultAuthenticationCallback(callbackContext));
    return true;
  }