【问题标题】:Creating Solr client using Solrj Api with Kerberized Solr使用带有 Kerberized Solr 的 Solrj Api 创建 Solr 客户端
【发布时间】:2018-08-02 00:37:55
【问题描述】:

我正在尝试使用 solrj api 为 kerberized solr 创建一个 solr 客户端。而根据solrj的文档,需要在代码中设置HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer());

但是 solrj api jar 在 HttpClientUtil 类中没有函数 setConfigurer。我正在使用来自 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 的选项

【问题讨论】:

标签: solr kerberos solrj


【解决方案1】:

“HttpClientUtil.setConfigurer”方法从“solr-solrj”版本 6.0.0 开始被弃用,最终从版本 7.0.0 开始被删除。

solrj 的文档仍未更新为创建 Kerberized Solr 客户端的新方法。

在 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();

【讨论】:

    猜你喜欢
    • 2018-04-28
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多