You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by cp...@apache.org on 2016/11/01 17:07:23 UTC

[1/5] lucene-solr:jira/solr-8542-v2: SOLR-9481: Move changes entry to 6.4

Repository: lucene-solr
Updated Branches:
  refs/heads/jira/solr-8542-v2 af550f54e -> 3ab2ee112


SOLR-9481: Move changes entry to 6.4


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/22aa34e0
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/22aa34e0
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/22aa34e0

Branch: refs/heads/jira/solr-8542-v2
Commit: 22aa34e017bec1c8e8fd517e2969b1311c545c25
Parents: 5120816
Author: Jan H�ydahl <ja...@apache.org>
Authored: Tue Nov 1 12:31:40 2016 +0100
Committer: Jan H�ydahl <ja...@apache.org>
Committed: Tue Nov 1 12:31:40 2016 +0100

----------------------------------------------------------------------
 solr/CHANGES.txt | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22aa34e0/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 7f067e9..fd4d2af 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -89,6 +89,10 @@ New Features
 * SOLR-9442: Adds Array of NamedValuePair (json.nl=arrnvp) style to JSONResponseWriter.
   (Jonny Marks, Christine Poerschke)
 
+* SOLR-9481: Authentication and Authorization plugins now work in standalone mode if security.json is placed in
+  SOLR_HOME on every node. Editing config through API is supported but affects only that one node. 
+  (janhoy)
+
 Optimizations
 ----------------------
 * SOLR-9704: Facet Module / JSON Facet API: Optimize blockChildren facets that have
@@ -205,10 +209,6 @@ New Features
 * SOLR-9654: Add "overrequest" parameter to JSON Facet API to control amount of overrequest
   on a distributed terms facet. (yonik)
 
-* SOLR-9481: Authentication and Authorization plugins now work in standalone mode if security.json is placed in
-  SOLR_HOME on every node. Editing config through API is supported but affects only that one node. 
-  (janhoy)
-
 * SOLR-2212: Add a factory class corresponding to Lucene's NoMergePolicy. (Lance Norskog, Cao Manh Dat via shalin)
 
 * SOLR-9670: Support SOLR_AUTHENTICATION_OPTS in solr.cmd (janhoy)


[4/5] lucene-solr:jira/solr-8542-v2: Add some debugging to HdfsRecoveryZkTest

Posted by cp...@apache.org.
Add some debugging to HdfsRecoveryZkTest


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/b6ff3fda
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/b6ff3fda
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/b6ff3fda

Branch: refs/heads/jira/solr-8542-v2
Commit: b6ff3fdace1ca333529d1a4f00cb49c8211bcba9
Parents: 359f981
Author: Alan Woodward <ro...@apache.org>
Authored: Tue Nov 1 16:10:51 2016 +0000
Committer: Alan Woodward <ro...@apache.org>
Committed: Tue Nov 1 16:10:58 2016 +0000

----------------------------------------------------------------------
 solr/core/src/java/org/apache/solr/update/HdfsTransactionLog.java | 3 ++-
 .../src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java   | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ff3fda/solr/core/src/java/org/apache/solr/update/HdfsTransactionLog.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/HdfsTransactionLog.java b/solr/core/src/java/org/apache/solr/update/HdfsTransactionLog.java
index e725127..90f6856 100644
--- a/solr/core/src/java/org/apache/solr/update/HdfsTransactionLog.java
+++ b/solr/core/src/java/org/apache/solr/update/HdfsTransactionLog.java
@@ -128,6 +128,7 @@ public class HdfsTransactionLog extends TransactionLog {
       success = true;
 
       assert ObjectReleaseTracker.track(this);
+      log.debug("Opening new tlog {}", this);
       
     } catch (IOException e) {
       throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
@@ -334,7 +335,7 @@ public class HdfsTransactionLog extends TransactionLog {
   public void close() {
     try {
       if (debug) {
-        log.debug("Closing tlog" + this);
+        log.debug("Closing tlog {}", this);
       }
 
       doCloseOutput();

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6ff3fda/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
index 2dfc32b..53823ef 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
@@ -22,6 +22,7 @@ import org.apache.lucene.util.LuceneTestCase.Slow;
 import org.apache.solr.cloud.RecoveryZkTest;
 import org.apache.solr.common.cloud.ZkConfigManager;
 import org.apache.solr.util.BadHdfsThreadsFilter;
+import org.apache.solr.util.LogLevel;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
@@ -30,6 +31,7 @@ import org.junit.BeforeClass;
 @ThreadLeakFilters(defaultFilters = true, filters = {
     BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
 })
+@LogLevel("org.apache.solr.update.HdfsTransactionLog=DEBUG")
 public class HdfsRecoveryZkTest extends RecoveryZkTest {
 
   private static MiniDFSCluster dfsCluster;


[3/5] lucene-solr:jira/solr-8542-v2: SOLR-9681: move "filter" inside "domain" block

Posted by cp...@apache.org.
SOLR-9681: move "filter" inside "domain" block


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/359f981b
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/359f981b
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/359f981b

Branch: refs/heads/jira/solr-8542-v2
Commit: 359f981b0e2737c3d019d0097e5be3bf76874407
Parents: 4383bec
Author: yonik <yo...@apache.org>
Authored: Tue Nov 1 11:59:51 2016 -0400
Committer: yonik <yo...@apache.org>
Committed: Tue Nov 1 12:01:04 2016 -0400

----------------------------------------------------------------------
 .../solr/search/facet/FacetProcessor.java       | 30 ++++++++-------
 .../apache/solr/search/facet/FacetRequest.java  | 39 +++++++++++---------
 .../solr/search/facet/TestJsonFacets.java       | 20 +++++-----
 3 files changed, 48 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/359f981b/solr/core/src/java/org/apache/solr/search/facet/FacetProcessor.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetProcessor.java b/solr/core/src/java/org/apache/solr/search/facet/FacetProcessor.java
index a8914f1..c1d2882 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetProcessor.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetProcessor.java
@@ -85,21 +85,15 @@ public abstract class FacetProcessor<FacetRequestT extends FacetRequest>  {
   }
 
   public void process() throws IOException {
-    // Check filters... if we do have filters they apply after domain changes.
-    // We still calculate them first because we can use it in a parent->child domain change.
-    evalFilters();
-    boolean appliedFilters = handleDomainChanges();
-    if (filter != null && !appliedFilters) {
-      fcontext.base = fcontext.base.intersection( filter );
-    }
+    handleDomainChanges();
   }
 
   private void evalFilters() throws IOException {
-    if (freq.filters == null || freq.filters.isEmpty()) return;
+    if (freq.domain.filters == null || freq.domain.filters.isEmpty()) return;
 
-    List<Query> qlist = new ArrayList<>(freq.filters.size());
+    List<Query> qlist = new ArrayList<>(freq.domain.filters.size());
     // TODO: prevent parsing filters each time!
-    for (Object rawFilter : freq.filters) {
+    for (Object rawFilter : freq.domain.filters) {
       Query symbolicFilter;
       if (rawFilter instanceof String) {
         QParser parser = null;
@@ -119,11 +113,19 @@ public abstract class FacetProcessor<FacetRequestT extends FacetRequest>  {
     this.filter = fcontext.searcher.getDocSet(qlist);
   }
 
-  private boolean handleDomainChanges() throws IOException {
-    if (freq.domain == null) return false;
+  private void handleDomainChanges() throws IOException {
+    if (freq.domain == null) return;
     handleFilterExclusions();
+
+    // Check filters... if we do have filters they apply after domain changes.
+    // We still calculate them first because we can use it in a parent->child domain change.
+    evalFilters();
+
     boolean appliedFilters = handleBlockJoin();
-    return appliedFilters;
+
+    if (this.filter != null && !appliedFilters) {
+      fcontext.base = fcontext.base.intersection( filter );
+    }
   }
 
   private void handleFilterExclusions() throws IOException {
@@ -187,7 +189,7 @@ public abstract class FacetProcessor<FacetRequestT extends FacetRequest>  {
     fcontext.base = fcontext.searcher.getDocSet(qlist);
   }
 
-  // returns "true" if filters have already been applied.
+  // returns "true" if filters were applied to fcontext.base already
   private boolean handleBlockJoin() throws IOException {
     boolean appliedFilters = false;
     if (!(freq.domain.toChildren || freq.domain.toParent)) return appliedFilters;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/359f981b/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java b/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java
index d3c8722..273466c 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java
@@ -78,7 +78,6 @@ public abstract class FacetRequest {
 
   protected Map<String,AggValueSource> facetStats;  // per-bucket statistics
   protected Map<String,FacetRequest> subFacets;     // per-bucket sub-facets
-  protected List<Object> filters;
   protected boolean processEmpty;
   protected Domain domain;
 
@@ -87,7 +86,8 @@ public abstract class FacetRequest {
     public List<String> excludeTags;
     public boolean toParent;
     public boolean toChildren;
-    public String parents;
+    public String parents; // identifies the parent filter... the full set of parent documents for any block join operation
+    public List<Object> filters; // list of symbolic filters (JSON query format)
   }
 
   public FacetRequest() {
@@ -359,33 +359,38 @@ abstract class FacetParser<FacetRequestT extends FacetRequest> {
 
       Map<String,Object> domainMap = (Map<String,Object>) m.get("domain");
       if (domainMap != null) {
+        FacetRequest.Domain domain = getDomain();
+
         excludeTags = getStringList(domainMap, "excludeTags");
         if (excludeTags != null) {
-          getDomain().excludeTags = excludeTags;
+          domain.excludeTags = excludeTags;
         }
 
         String blockParent = (String)domainMap.get("blockParent");
         String blockChildren = (String)domainMap.get("blockChildren");
 
         if (blockParent != null) {
-          getDomain().toParent = true;
-          getDomain().parents = blockParent;
+          domain.toParent = true;
+          domain.parents = blockParent;
         } else if (blockChildren != null) {
-          getDomain().toChildren = true;
-          getDomain().parents = blockChildren;
+          domain.toChildren = true;
+          domain.parents = blockChildren;
         }
 
-      }
-
-      Object filterOrList = m.get("filter");
-      if (filterOrList != null) {
-        if (filterOrList instanceof List) {
-          facet.filters = (List<Object>)filterOrList;
-        } else {
-          facet.filters = new ArrayList<>(1);
-          facet.filters.add(filterOrList);
+        Object filterOrList = domainMap.get("filter");
+        if (filterOrList != null) {
+          assert domain.filters == null;
+          if (filterOrList instanceof List) {
+            domain.filters = (List<Object>)filterOrList;
+          } else {
+            domain.filters = new ArrayList<>(1);
+            domain.filters.add(filterOrList);
+          }
         }
-      }
+
+
+      } // end "domain"
+
 
     }
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/359f981b/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java b/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java
index 57e3ed1..32c6ef1 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java
@@ -1167,12 +1167,12 @@ public class TestJsonFacets extends SolrTestCaseHS {
     // test filter
     client.testJQ(params(p, "q", "*:*", "myfilt","${cat_s}:A"
         , "json.facet", "{" +
-            "t:{${terms} type:terms, field:${cat_s}, filter:[]}" + // empty filter list
-            ",t_filt:{${terms} type:terms, field:${cat_s}, filter:'${cat_s}:B'}" +
-            ",t_filt2:{${terms} type:terms, field:${cat_s}, filter:'{!query v=$myfilt}'}" +  // test access to qparser and other query parameters
-            ",t_filt3:{${terms} type:terms, field:${cat_s}, filter:['-id:1','-id:2']}" +
-            ",q:{type:query, q:'${cat_s}:B', filter:['-id:5']}" + // also tests a top-level negative filter
-            ",r:{type:range, field:${num_d}, start:-5, end:10, gap:5, filter:'-id:4'}" +
+            "t:{${terms} type:terms, field:${cat_s}, domain:{filter:[]} }" + // empty filter list
+            ",t_filt:{${terms} type:terms, field:${cat_s}, domain:{filter:'${cat_s}:B'} }" +
+            ",t_filt2:{${terms} type:terms, field:${cat_s}, domain:{filter:'{!query v=$myfilt}'} }" +  // test access to qparser and other query parameters
+            ",t_filt3:{${terms} type:terms, field:${cat_s}, domain:{filter:['-id:1','-id:2']} }" +
+            ",q:{type:query, q:'${cat_s}:B', domain:{filter:['-id:5']} }" + // also tests a top-level negative filter
+            ",r:{type:range, field:${num_d}, start:-5, end:10, gap:5, domain:{filter:'-id:4'} }" +
             "}"
         )
         , "facets=={ count:6, " +
@@ -1419,10 +1419,10 @@ public class TestJsonFacets extends SolrTestCaseHS {
     // test filter after block join
     client.testJQ(params(p, "q", "*:*"
         , "json.facet", "{ " +
-            "pages1:{type:terms, field:v_t, domain:{blockChildren:'type_s:book'}, filter:'*:*' }" +
-            ",pages2:{type:terms, field:v_t, domain:{blockChildren:'type_s:book'}, filter:'-id:3.1' }" +
-            ",books:{type:terms, field:v_t, domain:{blockParent:'type_s:book'}, filter:'*:*' }" +
-            ",books2:{type:terms, field:v_t, domain:{blockParent:'type_s:book'}, filter:'id:1' }" +
+            "pages1:{type:terms, field:v_t, domain:{blockChildren:'type_s:book', filter:'*:*'} }" +
+            ",pages2:{type:terms, field:v_t, domain:{blockChildren:'type_s:book', filter:'-id:3.1'} }" +
+            ",books:{type:terms, field:v_t, domain:{blockParent:'type_s:book', filter:'*:*'} }" +
+            ",books2:{type:terms, field:v_t, domain:{blockParent:'type_s:book', filter:'id:1'} }" +
             "}"
         )
         , "facets=={ count:10" +


[2/5] lucene-solr:jira/solr-8542-v2: SOLR-9481: Clearing existing global interceptors on HttpClientUtil to avoid user/pass leaks from other tests

Posted by cp...@apache.org.
SOLR-9481: Clearing existing global interceptors on HttpClientUtil to avoid user/pass leaks from other tests


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/4383bec8
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/4383bec8
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/4383bec8

Branch: refs/heads/jira/solr-8542-v2
Commit: 4383bec84c38464c60e63880ad0ba37128d261a3
Parents: 22aa34e
Author: Jan H�ydahl <ja...@apache.org>
Authored: Tue Nov 1 15:38:21 2016 +0100
Committer: Jan H�ydahl <ja...@apache.org>
Committed: Tue Nov 1 15:38:21 2016 +0100

----------------------------------------------------------------------
 solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java  | 1 +
 .../test/org/apache/solr/security/BasicAuthStandaloneTest.java    | 3 +--
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4383bec8/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java b/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
index 29a887b..5c0717b 100644
--- a/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
@@ -119,6 +119,7 @@ public class BasicAuthPlugin extends AuthenticationPlugin implements ConfigEdita
               final String username = credentials.substring(0, p).trim();
               String pwd = credentials.substring(p + 1).trim();
               if (!authenticate(username, pwd)) {
+                log.debug("Bad auth credentials supplied in Authorization header");
                 authenticationFailure(response, "Bad credentials");
               } else {
                 HttpServletRequestWrapper wrapper = new HttpServletRequestWrapper(request) {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4383bec8/solr/core/src/test/org/apache/solr/security/BasicAuthStandaloneTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/security/BasicAuthStandaloneTest.java b/solr/core/src/test/org/apache/solr/security/BasicAuthStandaloneTest.java
index e5fec06..7d6c436 100644
--- a/solr/core/src/test/org/apache/solr/security/BasicAuthStandaloneTest.java
+++ b/solr/core/src/test/org/apache/solr/security/BasicAuthStandaloneTest.java
@@ -73,6 +73,7 @@ public class BasicAuthStandaloneTest extends AbstractSolrTestCase {
     instance.setUp();
     jetty = createJetty(instance);
     securityConfHandler = new SecurityConfHandlerLocalForTesting(jetty.getCoreContainer());
+    HttpClientUtil.clearRequestInterceptors(); // Clear out any old Authorization headers
   }
 
   @Override
@@ -101,8 +102,6 @@ public class BasicAuthStandaloneTest extends AbstractSolrTestCase {
       securityConfHandler.persistConf(new SecurityConfHandler.SecurityConfig()
           .setData(Utils.fromJSONString(STD_CONF.replaceAll("'", "\""))));
       securityConfHandler.securityConfEdited();
-      log.debug("Newly written security.json is " + securityConfHandler.getSecurityConfig(false) +
-        " and baseUrl is " + baseUrl);
       verifySecurityStatus(cl, baseUrl + authcPrefix, "authentication/class", "solr.BasicAuthPlugin", 20);
 
       String command = "{\n" +


[5/5] lucene-solr:jira/solr-8542-v2: Merge branch 'master' into jira/solr-8542-v2

Posted by cp...@apache.org.
Merge branch 'master' into jira/solr-8542-v2


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/3ab2ee11
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/3ab2ee11
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/3ab2ee11

Branch: refs/heads/jira/solr-8542-v2
Commit: 3ab2ee112eb3ce28be63f57332d185db802c4fa8
Parents: af550f5 b6ff3fd
Author: Christine Poerschke <cp...@apache.org>
Authored: Tue Nov 1 17:06:47 2016 +0000
Committer: Christine Poerschke <cp...@apache.org>
Committed: Tue Nov 1 17:06:47 2016 +0000

----------------------------------------------------------------------
 solr/CHANGES.txt                                |  8 ++--
 .../solr/search/facet/FacetProcessor.java       | 30 ++++++++-------
 .../apache/solr/search/facet/FacetRequest.java  | 39 +++++++++++---------
 .../apache/solr/security/BasicAuthPlugin.java   |  1 +
 .../apache/solr/update/HdfsTransactionLog.java  |  3 +-
 .../solr/cloud/hdfs/HdfsRecoveryZkTest.java     |  2 +
 .../solr/search/facet/TestJsonFacets.java       | 20 +++++-----
 .../solr/security/BasicAuthStandaloneTest.java  |  3 +-
 8 files changed, 58 insertions(+), 48 deletions(-)
----------------------------------------------------------------------