Close server for auth tests prior to assertions Further trying to flush logs to prevent random failure - hoping that killing the server will do it and make these tests more stable CTR
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e55ffc64 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e55ffc64 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e55ffc64 Branch: refs/heads/TINKERPOP-1990 Commit: e55ffc6432a188b9629d00177b5e01cfb07c3f9a Parents: ffb8c3e Author: Stephen Mallette <sp...@genoprime.com> Authored: Thu Jul 26 14:15:20 2018 -0400 Committer: Stephen Mallette <sp...@genoprime.com> Committed: Thu Jul 26 14:15:20 2018 -0400 ---------------------------------------------------------------------- .../GremlinServerAuditLogIntegrateTest.java | 14 +++++++++---- .../server/GremlinServerAuthIntegrateTest.java | 1 - .../GremlinServerAuthKrb5IntegrateTest.java | 15 ++++++++++++++ .../tinkerpop/gremlin/server/KdcFixture.java | 21 ++++++++++---------- 4 files changed, 35 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e55ffc64/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java ---------------------------------------------------------------------- diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java index c31ee69..0231bab 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java @@ -23,8 +23,6 @@ import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; -import org.apache.log4j.Appender; -import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.apache.log4j.spi.LoggingEvent; import static org.apache.log4j.Level.INFO; @@ -165,6 +163,7 @@ public class GremlinServerAuditLogIntegrateTest extends AbstractGremlinServerInt } // wait for logger to flush - (don't think there is a way to detect this) + stopServer(); Thread.sleep(1000); // WebSocketChannelizer does not add SaslAuthenticationHandler for AllowAllAuthenticator, @@ -192,6 +191,10 @@ public class GremlinServerAuditLogIntegrateTest extends AbstractGremlinServerInt cluster.close(); } + // wait for logger to flush - (don't think there is a way to detect this) + stopServer(); + Thread.sleep(1000); + final String simpleAuthenticatorName = SimpleAuthenticator.class.getSimpleName(); final String authMsg = recordingAppender.getMessages().stream() .filter(msg -> msg.contains("by " + simpleAuthenticatorName)).iterator().next(); @@ -199,8 +202,6 @@ public class GremlinServerAuditLogIntegrateTest extends AbstractGremlinServerInt m.find(); final String address = m.group(1); - // wait for logger to flush - (don't think there is a way to detect this) - Thread.sleep(1000); assertTrue(recordingAppender.logContainsAny(AUDIT_LOGGER_NAME, INFO, String.format("User %s with address %s authenticated by %s", username, address, simpleAuthenticatorName))); @@ -226,6 +227,7 @@ public class GremlinServerAuditLogIntegrateTest extends AbstractGremlinServerInt } // wait for logger to flush - (don't think there is a way to detect this) + stopServer(); Thread.sleep(1000); final List<LoggingEvent> log = recordingAppender.getEvents(); @@ -260,6 +262,7 @@ public class GremlinServerAuditLogIntegrateTest extends AbstractGremlinServerInt } // wait for logger to flush - (don't think there is a way to detect this) + stopServer(); Thread.sleep(1000); final List<LoggingEvent> log = recordingAppender.getEvents(); @@ -287,6 +290,7 @@ public class GremlinServerAuditLogIntegrateTest extends AbstractGremlinServerInt } // wait for logger to flush - (don't think there is a way to detect this) + stopServer(); Thread.sleep(1000); final List<LoggingEvent> log = recordingAppender.getEvents(); @@ -322,6 +326,7 @@ public class GremlinServerAuditLogIntegrateTest extends AbstractGremlinServerInt } // wait for logger to flush - (don't think there is a way to detect this) + stopServer(); Thread.sleep(1000); final List<LoggingEvent> log = recordingAppender.getEvents(); @@ -359,6 +364,7 @@ public class GremlinServerAuditLogIntegrateTest extends AbstractGremlinServerInt } // wait for logger to flush - (don't think there is a way to detect this) + stopServer(); Thread.sleep(1000); final List<LoggingEvent> log = recordingAppender.getEvents(); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e55ffc64/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthIntegrateTest.java ---------------------------------------------------------------------- diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthIntegrateTest.java index 6dda40b..35acf38 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthIntegrateTest.java @@ -40,7 +40,6 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.AnyOf.anyOf; import static org.hamcrest.core.IsInstanceOf.instanceOf; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; /** http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e55ffc64/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java ---------------------------------------------------------------------- diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java index 5a02d0a..10ed834 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java @@ -180,16 +180,31 @@ public class GremlinServerAuthKrb5IntegrateTest extends AbstractGremlinServerInt @Test public void shouldFailWithNonexistentServerPrincipal() throws Exception { + + // wait for logger to flush - (don't think there is a way to detect this) + stopServer(); + Thread.sleep(1000); + assertTrue(recordingAppender.logContainsAny("WARN - Failed to login to kdc")); } @Test public void shouldFailWithEmptyServerKeytab() throws Exception { + + // wait for logger to flush - (don't think there is a way to detect this) + stopServer(); + Thread.sleep(1000); + assertTrue(recordingAppender.logContainsAny("WARN - Failed to login to kdc")); } @Test public void shouldFailWithWrongServerKeytab() throws Exception { + + // wait for logger to flush - (don't think there is a way to detect this) + stopServer(); + Thread.sleep(1000); + assertTrue(recordingAppender.logContainsAny("WARN - Failed to login to kdc")); } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e55ffc64/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/KdcFixture.java ---------------------------------------------------------------------- diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/KdcFixture.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/KdcFixture.java index fce29d8..29eaf8d 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/KdcFixture.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/KdcFixture.java @@ -32,14 +32,14 @@ import java.net.Inet4Address; /** - * @author Marc de Lignie - * * This class is derived from the following classes from https://github.com/apache/directory-kerby/blob/kerby-all-1.0.0-RC2: * - org.apache.kerby.kerberos.kerb.server.TestKdcServer * - org.apache.kerby.kerberos.kerb.server.KdcTestBase * - org.apache.kerby.kerberos.kerb.server.LoginTestBase * * See also: gremlin-server/src/main/static/NOTICE + * + * @author Marc de Lignie */ public class KdcFixture { @@ -65,8 +65,7 @@ public class KdcFixture { final String hostname; private SimpleKdcServer kdcServer; - - public KdcFixture(String authConfigName) throws Exception { + public KdcFixture(final String authConfigName) { System.setProperty("java.security.auth.login.config", authConfigName); hostname = findHostname(); serverPrincipal = serverPrincipalName + "/" + hostname + "@" + KdcFixture.TestKdcServer.KDC_REALM; @@ -92,9 +91,9 @@ public class KdcFixture { } private File createTestDir() { - String basedir = System.getProperty("basedir"); - File targetdir = new File(basedir, "target"); - File testDir = new File(targetdir, "tmp"); + final String basedir = System.getProperty("basedir"); + final File targetdir = new File(basedir, "target"); + final File testDir = new File(targetdir, "tmp"); testDir.mkdirs(); return testDir; } @@ -110,8 +109,8 @@ public class KdcFixture { setAllowUdp(false); // There are still udp issues in Apache Directory-Kerby 1.0.0-RC2 setKdcTcpPort(NetworkUtil.getServerPort()); - KrbClient krbClnt = getKrbClient(); - KrbConfig krbConfig = krbClnt.getKrbConfig(); + final KrbClient krbClnt = getKrbClient(); + final KrbConfig krbConfig = krbClnt.getKrbConfig(); krbConfig.setString(KrbConfigKey.PERMITTED_ENCTYPES, "aes128-cts-hmac-sha1-96 des-cbc-crc des-cbc-md5 des3-cbc-sha1"); krbClnt.setTimeout(10 * 1000); @@ -135,11 +134,11 @@ public class KdcFixture { kdcServer.exportPrincipal(serverPrincipal, serviceKeytabFile); kdcServer.createPrincipal(clientPrincipal, clientPassword); - TgtTicket tgt = kdcServer.getKrbClient().requestTgt(clientPrincipal, clientPassword); + final TgtTicket tgt = kdcServer.getKrbClient().requestTgt(clientPrincipal, clientPassword); kdcServer.getKrbClient().storeTicket(tgt, ticketCacheFile); kdcServer.createPrincipal(clientPrincipal2, clientPassword2); - TgtTicket tgt2 = kdcServer.getKrbClient().requestTgt(clientPrincipal2, clientPassword2); + final TgtTicket tgt2 = kdcServer.getKrbClient().requestTgt(clientPrincipal2, clientPassword2); kdcServer.getKrbClient().storeTicket(tgt2, ticketCacheFile2); }