Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-14260

Make SchemaRegistryProvider pluggable in HttpClientUtil

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 8.6
    • SolrJ
    • None

    Description

      HttpClientUtil.java defines and uses an abstract SchemaRegistryProvider for mapping a protocol to an Apache ConnectionSocketFactory. There is only one implementation of this abstract class (outside of test cases). Currently, it is not override-able at runtime.

      This PR adds the ability to override the registry provider at runtime, using the class name value provided by "solr.httpclient.socketFactory.registry.provider", similar to how this class allows for choosing the HttpClientBuilderFactory at runtime.  And SchemaRegistryProvider is renamed to SocketFactoryRegistryProvider.

      We've implemented a custom mTLS solution in Solr (which uses a custom SSL context). This change helps us more easily configure Solr in a modular way, since we've implemented a custom SocketFactoryRegistryProvider that configures Apache clients to use our SSL context.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            dsmiley David Smiley
            athrog Andy Throgmorton
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 1h
                1h

                Slack

                  Issue deployment