Fix for CONNECTORS-1519. Thanks to Glenn Laenen for the patch.
git-svn-id: https://svn.apache.org/repos/asf/manifoldcf/trunk@1861998 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index 982d024..b5c1b92 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -3,6 +3,10 @@
======================= 2.14-dev =====================
+CONNECTORS-1519: Fix ElasticSearch connector HTTP PUT operations to work in an
+authorization environment without getting errors.
+(Glenn Laenen)
+
CONNECTORS-1612: JCIFS connector: adopt a single retry with a three-hour wait for
unknown SMB errors.
(Karl Wright)
diff --git a/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnection.java b/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnection.java
index a8497aa..f4ccab8 100644
--- a/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnection.java
+++ b/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnection.java
@@ -32,6 +32,7 @@
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
@@ -127,11 +128,23 @@
@Override
public void run()
{
+ HttpHost target = new HttpHost(method.getURI().getHost(), method.getURI().getPort(), method.getURI().getScheme());
+ // Create AuthCache instance
+ AuthCache authCache = new BasicAuthCache();
+ // Generate BASIC scheme object and add it to the local
+ // auth cache
+ BasicScheme basicAuth = new BasicScheme();
+ authCache.put(target, basicAuth);
+
+ // Add AuthCache to the execution context
+ HttpClientContext localContext = HttpClientContext.create();
+ localContext.setAuthCache(authCache);
+
try
{
try
{
- HttpResponse resp = client.execute(method);
+ HttpResponse resp = client.execute(method, localContext);
resultCode = resp.getStatusLine().getStatusCode();
response = getResponseBodyAsString(resp.getEntity());
}