You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by an...@apache.org on 2015/05/21 19:21:44 UTC

svn commit: r1680931 - in /lucene/dev/trunk/solr/core/src/java/org/apache/solr: handler/component/HttpShardHandlerFactory.java servlet/HttpSolrCall.java servlet/SolrDispatchFilter.java update/UpdateShardHandler.java

Author: anshum
Date: Thu May 21 17:21:44 2015
New Revision: 1680931

URL: http://svn.apache.org/r1680931
Log:
SOLR-7274: Stop forwarding Authorization, Host, and Accept headers for SPNego to work. Also fixed an exception forwarding from SDF and reconfigure SDF's httpClient after authentication has been initialized.

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java?rev=1680931&r1=1680930&r2=1680931&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java Thu May 21 17:21:44 2015
@@ -194,9 +194,7 @@ public class HttpShardHandlerFactory ext
    */
   public void reconfigureHttpClient(HttpClientConfigurer configurer) {
     log.info("Reconfiguring the default client with: " + configurer);
-    synchronized (this.defaultClient) {
-      configurer.configure((DefaultHttpClient)this.defaultClient, getClientParams());
-    }
+    configurer.configure((DefaultHttpClient)this.defaultClient, getClientParams());
   }
 
   protected ThreadPoolExecutor getThreadPoolExecutor(){

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java?rev=1680931&r1=1680930&r2=1680931&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java Thu May 21 17:21:44 2015
@@ -511,7 +511,11 @@ public class HttpSolrCall {
 
       for (Enumeration<String> e = req.getHeaderNames(); e.hasMoreElements(); ) {
         String headerName = e.nextElement();
-        method.addHeader(headerName, req.getHeader(headerName));
+        if (!"host".equalsIgnoreCase(headerName)
+            && !"authorization".equalsIgnoreCase(headerName)
+            && !"accept".equalsIgnoreCase(headerName)) {
+          method.addHeader(headerName, req.getHeader(headerName));
+        }
       }
       // These headers not supported for HttpEntityEnclosingRequests
       if (method instanceof HttpEntityEnclosingRequest) {

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java?rev=1680931&r1=1680930&r2=1680931&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java Thu May 21 17:21:44 2015
@@ -24,6 +24,7 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -36,6 +37,8 @@ import java.util.regex.Pattern;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.solr.client.solrj.impl.HttpClientConfigurer;
 import org.apache.solr.client.solrj.impl.HttpClientUtil;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrException.ErrorCode;
@@ -106,6 +109,13 @@ public class SolrDispatchFilter extends
 
       this.cores = createCoreContainer(solrHome, extraProperties);
 
+      if (this.cores.getAuthenticationPlugin() != null) {
+        HttpClientConfigurer configurer = this.cores.getAuthenticationPlugin().getDefaultConfigurer();
+        if (configurer != null) {
+          configurer.configure((DefaultHttpClient)httpClient, new ModifiableSolrParams());
+        }
+      }
+
       log.info("user.dir=" + System.getProperty("user.dir"));
     }
     catch( Throwable t ) {
@@ -248,7 +258,7 @@ public class SolrDispatchFilter extends
         });
       } catch (Exception e) {
         e.printStackTrace();
-        throw new SolrException(ErrorCode.SERVER_ERROR, "Error during request authentication, "+e);
+        throw new SolrException(ErrorCode.SERVER_ERROR, "Error during request authentication, ", e);
       }
     }
     // failed authentication?

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java?rev=1680931&r1=1680930&r2=1680931&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java Thu May 21 17:21:44 2015
@@ -90,9 +90,7 @@ public class UpdateShardHandler {
 
   public void reconfigureHttpClient(HttpClientConfigurer configurer) {
     log.info("Reconfiguring the default client with: " + configurer);
-    synchronized (client) {
-      configurer.configure((DefaultHttpClient)client, getClientParams());
-    }
+    configurer.configure((DefaultHttpClient)client, getClientParams());
   }
 
   public ClientConnectionManager getConnectionManager() {