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