我正在尝试使用solrj api为kerberised solr创建一个solr客户端。根据{{3}}的文档,需要在代码中设置HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer());
。
但是solrj api jar在setConfigurer
类中没有函数HttpClientUtil
。我正在使用maven的以下依赖。
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>7.2.1</version>
</dependency>
是否可以使用new HttpSolrClient.Builder
创建solr客户端并启用kerberisation来读取jaas.config
文件以进行身份验证和授权。
目前我正在创建如下的solr客户端;
new HttpSolrClient.Builder("solrUrlString").build()
但我没有看到以上述方式启用Krb5HttpClientConfigurer
的选项
答案 0 :(得分:2)
“HttpClientUtil.setConfigurer”方法从“solr-solrj”版本6.0.0折旧,最后从7.0.0版本开始删除。
但仍然没有使用创建Kerberized Solr客户端的新方法更新solrj的文档。
在7.0.0版本以后找到了实现它的方法:
Builder solrClientBuilder = new HttpSolrClient.Builder("https://<hostname>/solr/<collectionName>");
Krb5HttpClientBuilder krbBuilder = new Krb5HttpClientBuilder();
SolrHttpClientBuilder krb5HttpClientBuilder = krbBuilder.getHttpClientBuilder(java.util.Optional.empty());
HttpClientUtil.setHttpClientBuilder(krb5HttpClientBuilder);
ModifiableSolrParams params = new ModifiableSolrParams();
params.set(HttpClientUtil.PROP_FOLLOW_REDIRECTS, false);
CloseableHttpClient httpClient = HttpClientUtil.createClient(params);
SolrClient client = solrClientBuilder.withHttpClient(httpClient).build();