[ 
https://issues.apache.org/jira/browse/SOLR-9997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15829754#comment-15829754
 ] 

ASF GitHub Bot commented on SOLR-9997:
--------------------------------------

Github user janhoy commented on a diff in the pull request:

    https://github.com/apache/lucene-solr/pull/140#discussion_r96840773
  
    --- Diff: 
solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpClientUtil.java ---
    @@ -111,28 +112,46 @@
       // cannot be established within x ms. with a
       // java.net.SocketTimeoutException: Connection timed out
       public static final String PROP_CONNECTION_TIMEOUT = "connTimeout";
    -  
    +
    +  /**
    +   * A Java system property to select the {@linkplain 
HttpClientBuilderFactory} used for
    +   * configuring the {@linkplain HttpClientBuilder} instance by default.
    +   */
    +  public static final String SYS_PROP_HTTP_CLIENT_BUILDER_FACTORY = 
"solr.httpclient.builder.factory";
    +
       static final DefaultHttpRequestRetryHandler NO_RETRY = new 
DefaultHttpRequestRetryHandler(
           0, false);
     
       private static volatile SolrHttpClientBuilder httpClientBuilder;
    -  
    +
       private static SolrHttpClientContextBuilder 
httpClientRequestContextBuilder = new SolrHttpClientContextBuilder();
    -  
    +
    +  private static volatile SchemaRegistryProvider schemaRegistryProvider;
    +  private static volatile String cookiePolicy;
    +  private static final List<HttpRequestInterceptor> interceptors = 
Collections.synchronizedList(new ArrayList<HttpRequestInterceptor>());
    +
    +
       static {
         resetHttpClientBuilder();
    +
    +    // Configure the HttpClientBuilder if user has specified the factory 
type.
    +    String factoryClassName = 
System.getProperty(SYS_PROP_HTTP_CLIENT_BUILDER_FACTORY);
    +    if (factoryClassName != null) {
    +      logger.info ("Using " + factoryClassName);
    --- End diff --
    
    use logger.debug


> Enable configuring SolrHttpClientBuilder via java system property
> -----------------------------------------------------------------
>
>                 Key: SOLR-9997
>                 URL: https://issues.apache.org/jira/browse/SOLR-9997
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>    Affects Versions: 6.3
>            Reporter: Hrishikesh Gadre
>
> 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,
> https://github.com/apache/lucene-solr/blob/9f58b6cd177f72b226c83adbb965cfe08d61d2fb/solr/core/src/java/org/apache/solr/util/SolrCLI.java#L156
> 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). 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to