@Test public void testTokenInURLClusteredWithDifferentUser() throws Exception { String[] customArgs1 = {"--auth","token_one"}; String[] customArgs2 = {"--auth","token_two"}; TestHandler handler = new TestHandler(); try (NatsTestServer ts1 = new NatsTestServer(customArgs1, false); NatsTestServer ts2 = new NatsTestServer(customArgs2, false)) { // See config file for user/pass Options options = new Options.Builder(). server("nats://token_one@localhost:"+ts1.getPort()). server("nats://token_two@localhost:"+ts2.getPort()). maxReconnects(4). noRandomize(). connectionListener(handler). pingInterval(Duration.ofMillis(100)). build(); Connection nc = Nats.connect(options); assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); assertEquals(nc.getConnectedUrl(), "nats://token_one@localhost:"+ts1.getPort()); handler.prepForStatusChange(Events.RESUBSCRIBED); ts1.close(); handler.waitForStatusChange(2, TimeUnit.SECONDS); assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); assertEquals(nc.getConnectedUrl(), "nats://token_two@localhost:"+ts2.getPort()); nc.close(); } }
@Test public void testTokenInURLWithFallback() throws Exception { String[] customArgs1 = {"--auth","token_one"}; String[] customArgs2 = {"--auth","token_two"}; TestHandler handler = new TestHandler(); try (NatsTestServer ts1 = new NatsTestServer(customArgs1, false); NatsTestServer ts2 = new NatsTestServer(customArgs2, false)) { // See config file for user/pass Options options = new Options.Builder(). server("nats://token_one@localhost:"+ts1.getPort()). server("nats://localhost:"+ts2.getPort()). token("token_two"). maxReconnects(4). noRandomize(). connectionListener(handler). pingInterval(Duration.ofMillis(100)). build(); Connection nc = Nats.connect(options); assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); assertEquals(nc.getConnectedUrl(), "nats://token_one@localhost:"+ts1.getPort()); handler.prepForStatusChange(Events.RESUBSCRIBED); ts1.close(); handler.waitForStatusChange(2, TimeUnit.SECONDS); assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); assertEquals(nc.getConnectedUrl(), "nats://localhost:"+ts2.getPort()); nc.close(); } }
@Test public void testUserPassInURLClusteredWithDifferentUser() throws Exception { String[] customArgs1 = {"--user","stephen","--pass","password"}; String[] customArgs2 = {"--user","alberto","--pass","casadecampo"}; TestHandler handler = new TestHandler(); try (NatsTestServer ts1 = new NatsTestServer(customArgs1, false); NatsTestServer ts2 = new NatsTestServer(customArgs2, false)) { // See config file for user/pass Options options = new Options.Builder(). server("nats://stephen:password@localhost:"+ts1.getPort()). server("nats://alberto:casadecampo@localhost:"+ts2.getPort()). maxReconnects(4). noRandomize(). connectionListener(handler). pingInterval(Duration.ofMillis(100)). build(); Connection nc = Nats.connect(options); assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); assertEquals(nc.getConnectedUrl(), "nats://stephen:password@localhost:"+ts1.getPort()); handler.prepForStatusChange(Events.RESUBSCRIBED); ts1.close(); handler.waitForStatusChange(2, TimeUnit.SECONDS); assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); assertEquals(nc.getConnectedUrl(), "nats://alberto:casadecampo@localhost:"+ts2.getPort()); nc.close(); } }
@Test public void testUserPassInURLWithFallback() throws Exception { String[] customArgs1 = {"--user","stephen","--pass","password"}; String[] customArgs2 = {"--user","alberto","--pass","casadecampo"}; TestHandler handler = new TestHandler(); try (NatsTestServer ts1 = new NatsTestServer(customArgs1, false); NatsTestServer ts2 = new NatsTestServer(customArgs2, false)) { // See config file for user/pass Options options = new Options.Builder(). server("nats://stephen:password@localhost:"+ts1.getPort()). server("nats://localhost:"+ts2.getPort()). userInfo("alberto", "casadecampo"). maxReconnects(4). noRandomize(). connectionListener(handler). pingInterval(Duration.ofMillis(100)). build(); Connection nc = Nats.connect(options); assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); assertEquals(nc.getConnectedUrl(), "nats://stephen:password@localhost:"+ts1.getPort()); handler.prepForStatusChange(Events.RESUBSCRIBED); ts1.close(); handler.waitForStatusChange(2, TimeUnit.SECONDS); assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); assertEquals(nc.getConnectedUrl(), "nats://localhost:"+ts2.getPort()); nc.close(); } }
@Test public void testURISchemeOpenTLSConnection() throws Exception { try (NatsTestServer ts = new NatsTestServer("src/test/resources/tls.conf", false)) { Options options = new Options.Builder(). server("opentls://localhost:"+ts.getPort()). maxReconnects(0). build(); Connection nc = Nats.connect(options); try { assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); } finally { nc.close(); assertTrue("Closed Status", Connection.Status.CLOSED == nc.getStatus()); } } }
@Test public void testUserPassInURL() throws Exception { String[] customArgs = {"--user","stephen","--pass","password"}; try (NatsTestServer ts = new NatsTestServer(customArgs, false)) { // See config file for user/pass Options options = new Options.Builder(). server("nats://stephen:password@localhost:"+ts.getPort()). maxReconnects(0). build(); Connection nc = Nats.connect(options); try { assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); } finally { nc.close(); assertTrue("Closed Status", Connection.Status.CLOSED == nc.getStatus()); } } }
@Test public void testTokenInURL() throws Exception { String[] customArgs = {"--auth","alberto"}; try (NatsTestServer ts = new NatsTestServer(customArgs, false)) { // See config file for user/pass Options options = new Options.Builder(). server("nats://alberto@localhost:"+ts.getPort()). maxReconnects(0). build(); Connection nc = Nats.connect(options); try { assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); } finally { nc.close(); assertTrue("Closed Status", Connection.Status.CLOSED == nc.getStatus()); } } }
@Test public void testURISchemeNoIPOpenTLSConnection() throws Exception { //System.setProperty("javax.net.debug", "all"); TestSSLUtils.setKeystoreSystemParameters(); try (NatsTestServer ts = new NatsTestServer("src/test/resources/tls_noip.conf", false)) { Options options = new Options.Builder(). server("opentls://localhost:"+ts.getPort()). maxReconnects(0). build(); Connection nc = Nats.connect(options); try { assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); } finally { nc.close(); assertTrue("Closed Status", Connection.Status.CLOSED == nc.getStatus()); } } } }
@Test public void testURISchemeTLSConnection() throws Exception { try (NatsTestServer ts = new NatsTestServer("src/test/resources/tlsverify.conf", false)) { Options options = new Options.Builder(). server("tls://localhost:"+ts.getPort()). sslContext(TestSSLUtils.createTestSSLContext()). // override the custom one maxReconnects(0). build(); Connection nc = Nats.connect(options); try { assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); } finally { nc.close(); assertTrue("Closed Status", Connection.Status.CLOSED == nc.getStatus()); } } }
@Test public void testURISchemeNoIPTLSConnection() throws Exception { //System.setProperty("javax.net.debug", "all"); TestSSLUtils.setKeystoreSystemParameters(); try (NatsTestServer ts = new NatsTestServer("src/test/resources/tls_noip.conf", false)) { Options options = new Options.Builder(). server("tls://localhost:"+ts.getPort()). maxReconnects(0). build(); Connection nc = Nats.connect(options); try { assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); } finally { nc.close(); assertTrue("Closed Status", Connection.Status.CLOSED == nc.getStatus()); } } }
server("nats://stephen:password@localhost:"+ts.getPort()). maxReconnects(-1). connectionListener(handler).
@Test public void testSimpleIPTLSConnection() throws Exception { //System.setProperty("javax.net.debug", "all"); try (NatsTestServer ts = new NatsTestServer("src/test/resources/tls.conf", false)) { SSLContext ctx = TestSSLUtils.createTestSSLContext(); Options options = new Options.Builder(). server("127.0.0.1:" + ts.getPort()). maxReconnects(0). sslContext(ctx). build(); Connection nc = Nats.connect(options); try { assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); } finally { nc.close(); assertTrue("Closed Status", Connection.Status.CLOSED == nc.getStatus()); } } }
@Test public void testURISchemeIPTLSConnection() throws Exception { try (NatsTestServer ts = new NatsTestServer("src/test/resources/tlsverify.conf", false)) { Options options = new Options.Builder(). server("tls://127.0.0.1:"+ts.getPort()). sslContext(TestSSLUtils.createTestSSLContext()). // override the custom one maxReconnects(0). build(); Connection nc = Nats.connect(options); try { assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus()); } finally { nc.close(); assertTrue("Closed Status", Connection.Status.CLOSED == nc.getStatus()); } } }
connectionListener(handler). build(); port = ts.getPort(); nc = (NatsConnection) Nats.connect(options); assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus());
connectionListener(handler). build(); port = ts.getPort(); nc = Nats.connect(options); assertTrue("Connected Status", Connection.Status.CONNECTED == nc.getStatus());
assertEquals(ts2.getPort(), uri.getPort()); // full uri will have some ip address, just check port } finally { if (nc != null) {