private UmssoCLCore initializeCore() {
    UmssoCLCore clCore = UmssoCLCoreImpl.getInstance();
    HttpParams params = clCore.getUmssoHttpClient().getParams();
    HttpConnectionParams.setConnectionTimeout(params, 10000);
    PoolingClientConnectionManager cm = clCore.getConnectionManager();
    cm.setMaxTotal(HTTP_MAX_TOTAL_CONNECTIONS);
    cm.setDefaultMaxPerRoute(HTTP_DEFAULT_MAX_CONNECTIONS_PER_ROUTE);

    UmssoCLEnvironment umssoCLEnvironment =
        umSsoHttpConnectionSettings.getUmSsoCLEnvironmentFromProxySettings();
    if (umssoCLEnvironment != null) {
      clCore.init(umssoCLEnvironment);
    }

    if (umSsoHttpConnectionSettings.isIgnoreCertificates()) {
      ignoreCertificates(clCore.getUmssoHttpClient());
    }
    return clCore;
  }
  public void executeHttpRequest(HttpRequestBase request) throws UmssoCLException, IOException {
    UmssoCLInput input = initializeInput(request);
    UmssoCLCore clCore = initializeCore();

    LOGGER.debug(
        String.format(
            "Making the following HTTP request with support for UM-SSO%n%s%nConnection Settings: %s",
            request.getURI().toString(), umSsoHttpConnectionSettings.toString()));
    clCore.processHttpRequest(input);
  }