@Override public HttpClientOptions setSsl(boolean ssl) { super.setSsl(ssl); return this; }
@Override public NetClientOptions setSsl(boolean ssl) { super.setSsl(ssl); return this; }
@Override public void start() throws Exception { ManagedChannel channel = VertxChannelBuilder .forAddress(vertx, "localhost", 8080) .useSsl(options -> options.setSsl(true) .setUseAlpn(true) .setTrustStoreOptions(new JksOptions() .setPath("tls/client-truststore.jks") .setPassword("wibble"))) .build(); GreeterGrpc.GreeterVertxStub stub = GreeterGrpc.newVertxStub(channel); HelloRequest request = HelloRequest.newBuilder().setName("Julien").build(); stub.sayHello(request, asyncResponse -> { if (asyncResponse.succeeded()) { System.out.println("Succeeded " + asyncResponse.result().getMessage()); } else { asyncResponse.cause().printStackTrace(); } }); } }
@Override public NetClientOptions setSsl(boolean ssl) { super.setSsl(ssl); return this; }
@Override public HttpClientOptions setSsl(boolean ssl) { super.setSsl(ssl); return this; }
@Override public Handler<ClientOptionsBase> parse( final JsonObject options) { return Fn.getNull(() -> { final PemTrustOptions pem = Fn.getSemi( !options.containsKey(PATH_CERT), LOGGER, Trust.CLIENT_PEM, () -> new PemTrustOptions().addCertPath(PATH_CERT) ); return option -> option .setSsl(true) .setUseAlpn(true) .setPemTrustOptions(pem) .setOpenSslEngineOptions(new OpenSSLEngineOptions()); }, options); } }
@Override public Handler<ClientOptionsBase> parse( final JsonObject options) { return Fn.getNull(() -> { final PemTrustOptions pem = Fn.getSemi( !options.containsKey(PATH_CERT), LOGGER, Trust.CLIENT_PEM, () -> new PemTrustOptions().addCertPath(PATH_CERT) ); return option -> option .setSsl(true) .setUseAlpn(true) .setPemTrustOptions(pem) .setOpenSslEngineOptions(new OpenSSLEngineOptions()); }, options); } }
@Test public void testTrustAll(TestContext ctx) throws Exception { testSimple(options -> options .setTrustAll(true) .setSsl(true) .setUseAlpn(true), options -> options .setSsl(true) .setUseAlpn(true) .setKeyStoreOptions(new JksOptions() .setPath("tls/server-keystore.jks") .setPassword("wibble")), ctx, true); }
@Test public void testConnect(TestContext ctx) throws Exception { testSimple(options -> options.setSsl(true) .setUseAlpn(true) .setTrustStoreOptions(new JksOptions() .setPath("tls/client-truststore.jks") .setPassword("wibble")), options -> options .setSsl(true) .setUseAlpn(true) .setKeyStoreOptions(new JksOptions() .setPath("tls/server-keystore.jks") .setPassword("wibble")), ctx, true); }
@Test public void testClientAuthFail(TestContext ctx) throws Exception { testSimple(options -> options .setTrustAll(true) .setSsl(true) .setUseAlpn(true), options -> options .setSsl(true) .setUseAlpn(true) .setKeyStoreOptions(new JksOptions() .setPath("tls/server-keystore.jks") .setPassword("wibble")) .setClientAuth(ClientAuth.REQUIRED) .setTrustStoreOptions(new JksOptions() .setPath("tls/client-truststore.jks") .setPassword("wibble")), ctx, false); }
@Test public void testClientAuth(TestContext ctx) throws Exception { testSimple(options -> options .setTrustAll(true) .setSsl(true) .setUseAlpn(true) .setKeyStoreOptions(new JksOptions() .setPath("tls/server-keystore.jks") .setPassword("wibble")) , options -> options .setSsl(true) .setUseAlpn(true) .setKeyStoreOptions(new JksOptions() .setPath("tls/server-keystore.jks") .setPassword("wibble")) .setClientAuth(ClientAuth.REQUIRED) .setTrustStoreOptions(new JksOptions() .setPath("tls/client-truststore.jks") .setPassword("wibble")), ctx, true); }