This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch driver-35 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 889da7eb25ea3643f97aed8a71c5ec8ca003edf5 Author: Stephen Mallette <[email protected]> AuthorDate: Tue Oct 1 11:53:15 2019 -0400 Added test to show fix for TINKERPOP-2132 which related to problems with authentication over multiple threads. --- ...ClientSingleRequestConnectionIntegrateTest.java | 2 -- .../server/GremlinServerAuthKrb5IntegrateTest.java | 23 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/ClientSingleRequestConnectionIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/ClientSingleRequestConnectionIntegrateTest.java index 89dfdda..49d39a4 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/ClientSingleRequestConnectionIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/ClientSingleRequestConnectionIntegrateTest.java @@ -46,8 +46,6 @@ import java.util.stream.IntStream; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.core.IsCollectionContaining.hasItem; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; 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 de838e0..7ac1fbd 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 @@ -287,6 +287,29 @@ public class GremlinServerAuthKrb5IntegrateTest extends AbstractGremlinServerInt assertAuthViaToStringWithSpecifiedSerializer(new GraphBinaryMessageSerializerV1()); } + @Test + public void shouldAuthenticateWithThreads() throws Exception { + final Cluster cluster = TestClientFactory.build().jaasEntry(TESTCONSOLE) + .protocol(kdcServer.serverPrincipalName).addContactPoint(kdcServer.hostname).create(); + final GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using(cluster, "gmodern")); + + final ExecutorService executor = Executors.newFixedThreadPool(4); + final Callable<Long> countTraversalJob = () -> g.V().both().both().count().next(); + final List<Future<Long>> results = executor.invokeAll(Collections.nCopies(100, countTraversalJob)); + + assertEquals(100, results.size()); + for (int ix = 0; ix < results.size(); ix++) { + try { + assertEquals(30L, results.get(ix).get(1000, TimeUnit.MILLISECONDS).longValue()); + } catch (Exception ex) { + // failure but shouldn't have + cluster.close(); + fail("Exception halted assertions - " + ex.getMessage()); + } + } + cluster.close(); + } + public void assertAuthViaToStringWithSpecifiedSerializer(final MessageSerializer serializer) throws InterruptedException, ExecutionException { final Map<String,Object> config = new HashMap<>(); config.put("serializeResultToString", true);
