Description
Currently SolrHttpClientBuilder needs to be configured via invoking HttpClientUtil#setHttpClientBuilder(...) API. On the other hand SolrCLI attempts to support configuring SolrHttpClientBuilder via Java system property. https://github.com/apache/lucene-solr/blob/9f58b6cd177f72b226c83adbb965cfe08d61d2fb/solr/core/src/java/org/apache/solr/util/SolrCLI.java#L265
But after changes for SOLR-4509, this is no longer working. This is because we need to configure HttpClientBuilderFactory which can provide appropriate SolrHttpClientBuilder instance (e.g. Krb5HttpClientBuilder). I verified that SolrCLI does not work in a kerberos enabled cluster. During the testing I also found that SolrCLI is hardcoded to use basic authentication,
This jira is to add support for configuring HttpClientBuilderFactory as a java system property so that SolrCLI as well as other Solr clients can also benefit this. Also we should provide a HttpClientBuilderFactory which support configuring preemptive basic authentication so that we can remove the hardcoded basic auth usage in SolrCLI (and enable it work with kerberos).