2016-10-14 3 views
1

を返して(これは私にしばらく時間がかかったので、私は質問を提供し、それはそれだけの価値の考え方回答しています。)SolrのDataImportHandlerは403

DataImportHandlerは、データを取得する必要があり、そこからURLが確保されているHTTPS URLを呼び出しますHTTPSと追加のauthパラメータを使用します。 DataImportHandlerの構成は次のようになります。

curlを経由して、同じURLのクイックテストは(のみ興味深い出力を示す)が成功しながら、定期的なSOLR 6のインストールでこれを実行する

<dataConfig> 
    <dataSource type="URLDataSource" 
       baseUrl="https://www.gutscheinpony.de/" 
       encoding="UTF-8"/> 
    <document> 
     <entity name="pony" 
       pk="id" 
       url="feeds.xml?auth=XXX" 
       processor="XPathEntityProcessor" 
       forEach="/data/offers/offer" 
       xsl="xslt/gutscheinpony.xsl"> 

      <!-- fields omitted --> 

     </entity> 
    </document> 
</dataConfig> 

403 Forbiddenコードで失敗します

curl https://www.gutscheinpony.de/feeds.xml?auth=XXX -Iv 
> Host: www.gutscheinpony.de 
> User-Agent: curl/7.43.0 
> Accept: */* 
> 
< HTTP/1.1 200 OK 
HTTP/1.1 200 OK 

カスタムJavaコードを書き込まずにDataImportHandler接続のユーザーエージェントを設定することはできますか?

答えて

0

違いは、Javaではデフォルトでユーザーエージェントが設定されないという点です。 SOLRもDataImportHandlerも、HTTPS接続に対してこれを自動的に修正しません。

Systemプロパティhttp.agentを使用して、Javaプロセスのユーザーエージェント値を設定することができます。この値は、他のサーバーが気にする場合にのみ重要です。

bin/solr -f -Dhttp.agent="test/me" 
:SOLRは次のように開始されたときに

したがって、DataImportHandlerは正常に動作します

関連する問題