Skip to content

Commit f8efe80

Browse files
rseitzepugh
andauthored
SOLR-17279: consolidate security.json constants in tests (#2445)
* create SecurityJson class for holding simple security.json used by multiple tests --------- Co-authored-by: Eric Pugh <[email protected]>
1 parent e62cb1b commit f8efe80

File tree

10 files changed

+160
-268
lines changed

10 files changed

+160
-268
lines changed

solr/CHANGES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ Other Changes
9595

9696
* SOLR-17205: De-couple SolrJ required Java version from server Java version (janhoy)
9797

98+
* SOLR-17279: Introduce SecurityJson.java file to Test Framework to consolidate setting up authentication in tests. (Rudy Seitz via Eric Pugh)
99+
98100
================== 9.7.0 ==================
99101
New Features
100102
---------------------

solr/core/src/test/org/apache/solr/cli/CreateToolTest.java

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,52 +17,24 @@
1717

1818
package org.apache.solr.cli;
1919

20-
import static java.util.Collections.singletonList;
21-
import static java.util.Collections.singletonMap;
2220
import static org.apache.solr.cli.SolrCLI.findTool;
2321
import static org.apache.solr.cli.SolrCLI.parseCmdLine;
24-
import static org.apache.solr.security.Sha256AuthenticationProvider.getSaltedHashedValue;
2522

26-
import java.util.Map;
2723
import org.apache.commons.cli.CommandLine;
2824
import org.apache.solr.cloud.SolrCloudTestCase;
29-
import org.apache.solr.common.util.Utils;
30-
import org.apache.solr.security.BasicAuthPlugin;
31-
import org.apache.solr.security.RuleBasedAuthorizationPlugin;
25+
import org.apache.solr.util.SecurityJson;
3226
import org.junit.BeforeClass;
3327
import org.junit.Test;
3428

3529
public class CreateToolTest extends SolrCloudTestCase {
3630

37-
private static final String USER = "solr";
38-
private static final String PASS = "SolrRocksAgain";
3931
private static final String collectionName = "testCreateCollectionWithBasicAuth";
4032

4133
@BeforeClass
4234
public static void setupClusterWithSecurityEnabled() throws Exception {
43-
final String SECURITY_JSON =
44-
Utils.toJSONString(
45-
Map.of(
46-
"authorization",
47-
Map.of(
48-
"class",
49-
RuleBasedAuthorizationPlugin.class.getName(),
50-
"user-role",
51-
singletonMap(USER, "admin"),
52-
"permissions",
53-
singletonList(Map.of("name", "all", "role", "admin"))),
54-
"authentication",
55-
Map.of(
56-
"class",
57-
BasicAuthPlugin.class.getName(),
58-
"blockUnknown",
59-
true,
60-
"credentials",
61-
singletonMap(USER, getSaltedHashedValue(PASS)))));
62-
6335
configureCluster(2)
6436
.addConfig("conf", configset("cloud-minimal"))
65-
.withSecurityJson(SECURITY_JSON)
37+
.withSecurityJson(SecurityJson.SIMPLE)
6638
.configure();
6739
}
6840

@@ -78,7 +50,7 @@ public void testCreateCollectionWithBasicAuth() throws Exception {
7850
"-zkHost",
7951
cluster.getZkClient().getZkServerAddress(),
8052
"-credentials",
81-
USER + ":" + PASS,
53+
SecurityJson.USER_PASS,
8254
"-verbose"
8355
};
8456

solr/core/src/test/org/apache/solr/cli/DeleteToolTest.java

Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,59 +17,30 @@
1717

1818
package org.apache.solr.cli;
1919

20-
import static java.util.Collections.singletonList;
21-
import static java.util.Collections.singletonMap;
2220
import static org.apache.solr.cli.SolrCLI.findTool;
2321
import static org.apache.solr.cli.SolrCLI.parseCmdLine;
24-
import static org.apache.solr.security.Sha256AuthenticationProvider.getSaltedHashedValue;
2522

26-
import java.util.Map;
2723
import org.apache.commons.cli.CommandLine;
2824
import org.apache.solr.client.solrj.SolrRequest;
2925
import org.apache.solr.client.solrj.SolrResponse;
3026
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
3127
import org.apache.solr.cloud.SolrCloudTestCase;
32-
import org.apache.solr.common.util.Utils;
33-
import org.apache.solr.security.BasicAuthPlugin;
34-
import org.apache.solr.security.RuleBasedAuthorizationPlugin;
28+
import org.apache.solr.util.SecurityJson;
3529
import org.junit.BeforeClass;
3630
import org.junit.Test;
3731

3832
public class DeleteToolTest extends SolrCloudTestCase {
3933

40-
private static final String USER = "solr";
41-
private static final String PASS = "SolrRocksAgain";
42-
4334
@BeforeClass
4435
public static void setupClusterWithSecurityEnabled() throws Exception {
45-
final String SECURITY_JSON =
46-
Utils.toJSONString(
47-
Map.of(
48-
"authorization",
49-
Map.of(
50-
"class",
51-
RuleBasedAuthorizationPlugin.class.getName(),
52-
"user-role",
53-
singletonMap(USER, "admin"),
54-
"permissions",
55-
singletonList(Map.of("name", "all", "role", "admin"))),
56-
"authentication",
57-
Map.of(
58-
"class",
59-
BasicAuthPlugin.class.getName(),
60-
"blockUnknown",
61-
true,
62-
"credentials",
63-
singletonMap(USER, getSaltedHashedValue(PASS)))));
64-
6536
configureCluster(2)
6637
.addConfig("conf", configset("cloud-minimal"))
67-
.withSecurityJson(SECURITY_JSON)
38+
.withSecurityJson(SecurityJson.SIMPLE)
6839
.configure();
6940
}
7041

7142
private <T extends SolrRequest<? extends SolrResponse>> T withBasicAuth(T req) {
72-
req.setBasicAuthCredentials(USER, PASS);
43+
req.setBasicAuthCredentials(SecurityJson.USER, SecurityJson.PASS);
7344
return req;
7445
}
7546

@@ -94,7 +65,7 @@ public void testDeleteCollectionWithBasicAuth() throws Exception {
9465
"-zkHost",
9566
cluster.getZkClient().getZkServerAddress(),
9667
"-credentials",
97-
USER + ":" + PASS,
68+
SecurityJson.USER_PASS,
9869
"-verbose"
9970
};
10071
assertEquals(0, runTool(args));

0 commit comments

Comments
 (0)