@Override public HttpClientOptions setSsl(boolean ssl) { super.setSsl(ssl); return this; }
case "connectTimeout": if (member.getValue() instanceof Number) { obj.setConnectTimeout(((Number)member.getValue()).intValue()); obj.setLocalAddress((String)member.getValue()); obj.setMetricsName((String)member.getValue()); obj.setProxyOptions(new io.vertx.core.net.ProxyOptions((JsonObject)member.getValue())); obj.setTrustAll((Boolean)member.getValue());
@Override public NetClientOptions setUseAlpn(boolean useAlpn) { return (NetClientOptions) super.setUseAlpn(useAlpn); }
@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); }
@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); }
@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 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 setTrustAll(boolean trustAll) { super.setTrustAll(trustAll); return this; }
@Override public HttpClientOptions setTrustStoreOptions(JksOptions options) { super.setTrustStoreOptions(options); return this; }
@Override public HttpClientOptions setKeyStoreOptions(JksOptions options) { super.setKeyStoreOptions(options); return this; }
@Override public NetClientOptions setPemTrustOptions(PemTrustOptions options) { return (NetClientOptions) super.setPemTrustOptions(options); }
@Override public ClientOptionsBase setOpenSslEngineOptions(OpenSSLEngineOptions sslEngineOptions) { return super.setOpenSslEngineOptions(sslEngineOptions); }
@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); }
@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 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); }
@Override public HttpClientOptions setTrustAll(boolean trustAll) { super.setTrustAll(trustAll); return this; }
@Override public NetClientOptions setTrustStoreOptions(JksOptions options) { super.setTrustStoreOptions(options); return this; }
@Override public NetClientOptions setKeyStoreOptions(JksOptions options) { super.setKeyStoreOptions(options); return this; }
@Override public HttpClientOptions setPemTrustOptions(PemTrustOptions options) { return (HttpClientOptions) super.setPemTrustOptions(options); }
@Override public ClientOptionsBase setOpenSslEngineOptions(OpenSSLEngineOptions sslEngineOptions) { return super.setOpenSslEngineOptions(sslEngineOptions); }