Details
-
Improvement
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
4.10.3, 6.0
-
None
-
None
Description
Solrj users can customize the Http client by overriding HttpClientConfigurer class (e.g. Krb5HttpClientConfigurer). But Solrj does not allow this customization at an individual SolrClient level. e.g. HttpSolrClient does not have a constructor which accepts default SolrParams which would be passed down to HttpClientUtil while creating an internal client.
I observed this while working on supporting Basic authentication with Solr (4.10.3) version. As a work-around, I had to use external Http client support in Solr. e.g.
----------------------------BEFORE-----------------------------
CloudSolrServer cloudSolrServer = new CloudSolrServer(zkEnsemble);
-----------------------------AFTER-------------------------------
ModifiableSolrParams solrParams = new ModifiableSolrParams();
solrParams.set(HttpClientUtil.PROP_BASIC_AUTH_USER, getLdapUserName());
solrParams.set(HttpClientUtil.PROP_BASIC_AUTH_PASS, getLdapUserPasswd());
DefaultHttpClient client = (DefaultHttpClient) HttpClientUtil.createClient(solrParams);
cloudSolrServer = new CloudSolrServer(zkEnsemble, new LBHttpSolrServer(client));
--------------------------------------------------------------------------------------------------
I think it would be great necessary constructors in the SolrClient implementations so that users can pass custom properties during initialization.