public static void performLogin(final AsyncCallback<Boolean> callback) {
    // let's only login if we are not actually logged in
    try {
      final String url = GWT.getHostPageBaseURL() + "api/mantle/isAuthenticated"; // $NON-NLS-1$
      RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, url);
      requestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
      requestBuilder.setHeader("accept", "text/plain");
      requestBuilder.sendRequest(
          null,
          new RequestCallback() {

            public void onError(Request request, Throwable caught) {
              MantleLoginDialog dialog = new MantleLoginDialog(callback, false);
              dialog.show();
            }

            public void onResponseReceived(Request request, Response response) {
              if (!"true".equalsIgnoreCase(response.getText())) {
                MantleLoginDialog dialog = new MantleLoginDialog(callback, false);
                dialog.show();
              }
            }
          });
    } catch (RequestException e) {
      MantleLoginDialog dialog = new MantleLoginDialog(callback, false);
      dialog.show();
    }
  }