Skip to content

SOLR-17279: consolidate security.json constants in tests #2445

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions solr/CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ Other Changes

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

* SOLR-17279: Introduce SecurityJson.java file to Test Framework to consolidate setting up authentication in tests. (Rudy Seitz via Eric Pugh)

================== 9.7.0 ==================
New Features
---------------------
Expand Down
34 changes: 3 additions & 31 deletions solr/core/src/test/org/apache/solr/cli/CreateToolTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,52 +17,24 @@

package org.apache.solr.cli;

import static java.util.Collections.singletonList;
import static java.util.Collections.singletonMap;
import static org.apache.solr.cli.SolrCLI.findTool;
import static org.apache.solr.cli.SolrCLI.parseCmdLine;
import static org.apache.solr.security.Sha256AuthenticationProvider.getSaltedHashedValue;

import java.util.Map;
import org.apache.commons.cli.CommandLine;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.util.Utils;
import org.apache.solr.security.BasicAuthPlugin;
import org.apache.solr.security.RuleBasedAuthorizationPlugin;
import org.apache.solr.util.SecurityJson;
import org.junit.BeforeClass;
import org.junit.Test;

public class CreateToolTest extends SolrCloudTestCase {

private static final String USER = "solr";
private static final String PASS = "SolrRocksAgain";
private static final String collectionName = "testCreateCollectionWithBasicAuth";

@BeforeClass
public static void setupClusterWithSecurityEnabled() throws Exception {
final String SECURITY_JSON =
Utils.toJSONString(
Map.of(
"authorization",
Map.of(
"class",
RuleBasedAuthorizationPlugin.class.getName(),
"user-role",
singletonMap(USER, "admin"),
"permissions",
singletonList(Map.of("name", "all", "role", "admin"))),
"authentication",
Map.of(
"class",
BasicAuthPlugin.class.getName(),
"blockUnknown",
true,
"credentials",
singletonMap(USER, getSaltedHashedValue(PASS)))));

configureCluster(2)
.addConfig("conf", configset("cloud-minimal"))
.withSecurityJson(SECURITY_JSON)
.withSecurityJson(SecurityJson.SIMPLE)
.configure();
}

Expand All @@ -78,7 +50,7 @@ public void testCreateCollectionWithBasicAuth() throws Exception {
"-zkHost",
cluster.getZkClient().getZkServerAddress(),
"-credentials",
USER + ":" + PASS,
SecurityJson.USER_PASS,
"-verbose"
};

Expand Down
37 changes: 4 additions & 33 deletions solr/core/src/test/org/apache/solr/cli/DeleteToolTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,59 +17,30 @@

package org.apache.solr.cli;

import static java.util.Collections.singletonList;
import static java.util.Collections.singletonMap;
import static org.apache.solr.cli.SolrCLI.findTool;
import static org.apache.solr.cli.SolrCLI.parseCmdLine;
import static org.apache.solr.security.Sha256AuthenticationProvider.getSaltedHashedValue;

import java.util.Map;
import org.apache.commons.cli.CommandLine;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrResponse;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.util.Utils;
import org.apache.solr.security.BasicAuthPlugin;
import org.apache.solr.security.RuleBasedAuthorizationPlugin;
import org.apache.solr.util.SecurityJson;
import org.junit.BeforeClass;
import org.junit.Test;

public class DeleteToolTest extends SolrCloudTestCase {

private static final String USER = "solr";
private static final String PASS = "SolrRocksAgain";

@BeforeClass
public static void setupClusterWithSecurityEnabled() throws Exception {
final String SECURITY_JSON =
Utils.toJSONString(
Map.of(
"authorization",
Map.of(
"class",
RuleBasedAuthorizationPlugin.class.getName(),
"user-role",
singletonMap(USER, "admin"),
"permissions",
singletonList(Map.of("name", "all", "role", "admin"))),
"authentication",
Map.of(
"class",
BasicAuthPlugin.class.getName(),
"blockUnknown",
true,
"credentials",
singletonMap(USER, getSaltedHashedValue(PASS)))));

configureCluster(2)
.addConfig("conf", configset("cloud-minimal"))
.withSecurityJson(SECURITY_JSON)
.withSecurityJson(SecurityJson.SIMPLE)
.configure();
}

private <T extends SolrRequest<? extends SolrResponse>> T withBasicAuth(T req) {
req.setBasicAuthCredentials(USER, PASS);
req.setBasicAuthCredentials(SecurityJson.USER, SecurityJson.PASS);
return req;
}

Expand All @@ -94,7 +65,7 @@ public void testDeleteCollectionWithBasicAuth() throws Exception {
"-zkHost",
cluster.getZkClient().getZkServerAddress(),
"-credentials",
USER + ":" + PASS,
SecurityJson.USER_PASS,
"-verbose"
};
assertEquals(0, runTool(args));
Expand Down
Loading