Ami*_*mar 5 solr kerberos solrj
我正在尝试使用solrj api创建用于kerberized solr的solr客户端。并且根据solrj的文档,需要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>
Run Code Online (Sandbox Code Playgroud)
是否可以使用创建solr客户端new HttpSolrClient.Builder并启用kerberisation读取jaas.config文件来进行身份验证和授权。
目前,我正在创建如下的solr客户程序;
new HttpSolrClient.Builder("solrUrlString").build()
Run Code Online (Sandbox Code Playgroud)
但是我没有看到以Krb5HttpClientConfigurer上述方式启用的选项
“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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |