使用安全凭证通过ModifiableSolrParams导入Solr

时间:2017-07-19 13:56:10

标签: java solr solrj dataimporthandler

我尝试使用ModifiableSolrParams通过java执行导入:

请您指出正确的方向或如何添加安全凭据(用户名/密码)以引发导入。

当前代码

    SolrServer server = new HttpSolrServer(baseurl);

    ModifiableSolrParams params = new ModifiableSolrParams();
    params.set("command", "full-import");
    params.set("clean", "true");
    params.set("commit", "true");

    QueryRequest request = new QueryRequest(params);
    request.setPath("/dataimport");

    server.request(request);

2 个答案:

答案 0 :(得分:1)

您需要将HttpRequestInterceptor添加到HttpServer。此拦截器将能够为您的每个请求添加授权标头。

对于云Solr,允许执行此操作的util类是HttpClientUtil。你可以从这个类开始,或者检查HttpSolrServer中实际存在HttpClient的位置。

答案 1 :(得分:1)

我偏离了Solrj,转而采用这种方法。

HttpClient Client = new DefaultHttpClient();
String userpass = usr + ":" + pwd;

HttpPost httpGet = new HttpPost(dataimport_cmd);
String encoding = 
DatatypeConverter.printBase64Binary(userpass.getBytes("UTF-8"));
httpGet.setHeader("Authorization", "Basic " + encoding);

    Client.execute(httpGet);