Skip to content

Commit

Permalink
Merge branch 'initialization-fix-scratch' into initialization-fix
Browse files Browse the repository at this point in the history
  • Loading branch information
cwperks committed Dec 20, 2023
2 parents b44574e + ef3dc82 commit 2b7d1ae
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
import org.apache.hc.core5.http.HttpVersion;
import org.apache.hc.core5.http2.HttpVersionPolicy;
import org.apache.http.HttpStatus;
import org.awaitility.Awaitility;
import org.junit.Assert;
import org.junit.Test;

Expand All @@ -62,8 +61,6 @@
import org.opensearch.security.test.helper.rest.RestHelper;
import org.opensearch.security.test.helper.rest.RestHelper.HttpResponse;

import static org.hamcrest.Matchers.equalTo;

public class InitializationIntegrationTests extends SingleClusterTest {

@Test
Expand Down Expand Up @@ -284,29 +281,39 @@ public void testDefaultConfig() throws Exception {
final Settings settings = Settings.builder().put(ConfigConstants.SECURITY_ALLOW_DEFAULT_INIT_SECURITYINDEX, true).build();
setup(Settings.EMPTY, null, settings, false);
RestHelper rh = nonSslRestHelper();
Thread.sleep(10000);

Awaitility.await()
.alias("Load default configuration")
.until(() -> rh.executeGetRequest("", encodeBasicHeader("admin", "admin")).getStatusCode(), equalTo(HttpStatus.SC_OK));
Assert.assertEquals(HttpStatus.SC_OK, rh.executeGetRequest("", encodeBasicHeader("admin", "admin")).getStatusCode());
HttpResponse res = rh.executeGetRequest("/_cluster/health", encodeBasicHeader("admin", "admin"));
Assert.assertEquals(res.getBody(), HttpStatus.SC_OK, res.getStatusCode());
}

@Test
public void testInvalidDefaultConfig() throws Exception {
try {
System.out.println("Existing defaultInitDirectory: " + System.getProperty("security.default_init.dir"));
System.out.println(
"Setting defaultInitDirectory: " + (new File(TEST_RESOURCE_RELATIVE_PATH + "invalid_config").getAbsolutePath())
);
final String defaultInitDirectory = ClusterHelper.updateDefaultDirectory(
new File(TEST_RESOURCE_RELATIVE_PATH + "invalid_config").getAbsolutePath()
);

final Settings settings = Settings.builder().put(ConfigConstants.SECURITY_ALLOW_DEFAULT_INIT_SECURITYINDEX, true).build();
setup(Settings.EMPTY, null, settings, false);

RestHelper rh = nonSslRestHelper();
Thread.sleep(10000);
Assert.assertEquals(
HttpStatus.SC_SERVICE_UNAVAILABLE,
nonSslRestHelper().executeGetRequest("", encodeBasicHeader("admin", "admin")).getStatusCode()
rh.executeGetRequest("", encodeBasicHeader("admin", "admin")).getStatusCode()
);

System.out.println("Setting defaultInitDirectory: " + defaultInitDirectory);

ClusterHelper.updateDefaultDirectory(defaultInitDirectory);
restart(Settings.EMPTY, null, settings, false);
rh = nonSslRestHelper();
Thread.sleep(10000);
Assert.assertEquals(HttpStatus.SC_OK, rh.executeGetRequest("", encodeBasicHeader("admin", "admin")).getStatusCode());
} finally {
ClusterHelper.resetSystemProperties();
}
Expand Down
12 changes: 12 additions & 0 deletions src/test/java/org/opensearch/security/test/SingleClusterTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,18 @@ protected void setup(
setup(initTransportClientSettings, dynamicSecuritySettings, nodeOverride, initSecurityIndex, ClusterConfiguration.DEFAULT);
}

protected void restart(
Settings initTransportClientSettings,
DynamicSecurityConfig dynamicSecuritySettings,
Settings nodeOverride,
boolean initOpendistroSecurityIndex
) throws Exception {
clusterInfo = clusterHelper.startCluster(minimumSecuritySettings(ccs(nodeOverride)), ClusterConfiguration.DEFAULT);
if (initOpendistroSecurityIndex && dynamicSecuritySettings != null) {
initialize(clusterHelper, clusterInfo, dynamicSecuritySettings);
}
}

private Settings ccs(Settings nodeOverride) throws Exception {
if (remoteClusterHelper != null) {
Assert.assertNull("No remote clusters", remoteClusterInfo);
Expand Down

0 comments on commit 2b7d1ae

Please sign in to comment.