You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2018/12/13 01:49:14 UTC
[2/3] lucene-solr:branch_7x: SOLR-13067: Harden
BasicAuthIntegrationTest.
SOLR-13067: Harden BasicAuthIntegrationTest.
# Conflicts:
# solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java
# solr/test-framework/src/java/org/apache/solr/cloud/SolrCloudAuthTestCase.java
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/ca0ded6f
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/ca0ded6f
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/ca0ded6f
Branch: refs/heads/branch_7x
Commit: ca0ded6f878fcd57e0640ed056e0b63b92ed78c2
Parents: 4bcad18
Author: markrmiller <ma...@apache.org>
Authored: Wed Dec 12 16:00:08 2018 -0600
Committer: markrmiller <ma...@apache.org>
Committed: Wed Dec 12 19:28:24 2018 -0600
----------------------------------------------------------------------
.../solr/security/BasicAuthIntegrationTest.java | 27 ++++++++++++++++----
1 file changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ca0ded6f/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java b/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java
index 6b6b4af..34c9bd2 100644
--- a/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java
@@ -16,6 +16,9 @@
*/
package org.apache.solr.security;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Collections.singletonMap;
+
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -28,6 +31,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Random;
+import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
import org.apache.http.HttpResponse;
@@ -59,7 +63,8 @@ import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.StrUtils;
import org.apache.solr.common.util.Utils;
import org.apache.solr.util.SolrCLI;
-import org.junit.BeforeClass;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -73,8 +78,8 @@ public class BasicAuthIntegrationTest extends SolrCloudTestCase {
private static final String COLLECTION = "authCollection";
- @BeforeClass
- public static void setupCluster() throws Exception {
+ @Before
+ public void setupCluster() throws Exception {
configureCluster(3)
.addConfig("conf", configset("cloud-minimal"))
.configure();
@@ -83,6 +88,11 @@ public class BasicAuthIntegrationTest extends SolrCloudTestCase {
cluster.waitForActiveCollection(COLLECTION, 3, 3);
}
+
+ @After
+ public void tearDownCluster() throws Exception {
+ shutdownCluster();
+ }
@Test
//commented 9-Aug-2018 @BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028") // 21-May-2018
@@ -110,10 +120,12 @@ public class BasicAuthIntegrationTest extends SolrCloudTestCase {
cluster.waitForJettyToStop(randomJetty);
- randomJetty.start(false);
+ randomJetty.start();
cluster.waitForAllNodes(30);
+ cluster.waitForActiveCollection(COLLECTION, 3, 3);
+
baseUrl = randomJetty.getBaseUrl().toString();
verifySecurityStatus(cl, baseUrl + authcPrefix, "authentication/class", "solr.BasicAuthPlugin", 20);
@@ -129,7 +141,10 @@ public class BasicAuthIntegrationTest extends SolrCloudTestCase {
((GenericSolrRequest)genericReq).setContentWriter(new StringPayloadContentWriter(command, CommonParams.JSON_MIME));
}
-
+ // avoid bad connection races due to shutdown
+ cluster.getSolrClient().getHttpClient().getConnectionManager().closeExpiredConnections();
+ cluster.getSolrClient().getHttpClient().getConnectionManager().closeIdleConnections(1, TimeUnit.MILLISECONDS);
+
HttpSolrClient.RemoteSolrException exp = expectThrows(HttpSolrClient.RemoteSolrException.class, () -> {
cluster.getSolrClient().request(genericReq);
});
@@ -158,6 +173,8 @@ public class BasicAuthIntegrationTest extends SolrCloudTestCase {
executeCommand(baseUrl + authzPrefix, cl,command, "solr", "SolrRocks");
+ Thread.sleep(2000); // sad little wait to try and avoid other clients from hitting http noresponse after jetty restart
+
baseUrl = cluster.getRandomJetty(random()).getBaseUrl().toString();
verifySecurityStatus(cl, baseUrl + authzPrefix, "authorization/user-role/harry", NOT_NULL_PREDICATE, 20);