@Test public void testRecordCreation(TestContext testContext) { Record record = HttpEndpoint.createRecord("some-name", "123.456.789.111", 80, null); assertThat(record.getLocation().getString(Record.ENDPOINT)).isEqualTo("http://123.456.789.111:80/"); record = HttpEndpoint.createRecord("some-name", "123.456.789.111", 80, "foo"); assertThat(record.getLocation().getString(Record.ENDPOINT)).isEqualTo("http://123.456.789.111:80/foo"); record = HttpEndpoint.createRecord("some-name", "123.456.789.111", 80, "foo", new JsonObject().put("language", "en")); assertThat(record.getLocation().getString(Record.ENDPOINT)).isEqualTo("http://123.456.789.111:80/foo"); assertThat(record.getMetadata().getString("language")).isEqualTo("en"); record = HttpEndpoint.createRecord("some-name", "acme.org"); assertThat(record.getLocation().getString(Record.ENDPOINT)).isEqualTo("http://acme.org:80/"); SelfSignedCertificate selfSignedCertificate = SelfSignedCertificate.create(); vertx.createHttpServer(new HttpServerOptions() .setHost("127.0.0.1") .setSsl(true) .setKeyCertOptions(selfSignedCertificate.keyCertOptions()) ).requestHandler(request -> { request.response().end(new JsonObject().put("url", request.absoluteURI()).encode()); }).listen(0, testContext.asyncAssertSuccess(server -> { Record sslRecord = HttpEndpoint.createRecord("http-bin", true, "127.0.0.1", server.actualPort(), "/get", null); ServiceReference reference = discovery.getReferenceWithConfiguration(sslRecord, new HttpClientOptions() .setSsl(true) .setTrustAll(true) .setVerifyHost(false) .toJson()); WebClient webClient = WebClient.wrap(reference.get()); webClient.get("/get").as(BodyCodec.jsonObject()).send(testContext.asyncAssertSuccess(resp -> { assertEquals("https://127.0.0.1:" + server.actualPort() + "/get", resp.body().getString("url")); })); })); }
private TrustAndKeyProvider generateSelfSigned(CoreContext core, String storeId) { core.logger(getClass()) .event(LOG_SECURITY, Level.WARNING).send(getMissingKeyStore()); return TrustAndKeyProvider.of(SelfSignedCertificate.create(CoreStrings.GITHUB)); }
/** * @param self a self signed certificate to get trust and keycert options from. * @return a new TrustAndKeyProvider instance. */ public static TrustAndKeyProvider of(SelfSignedCertificate self) { return new TrustAndKeyProvider(self.trustOptions(), self.keyCertOptions()); }