@Override public void start() throws Exception { // Start an SSL/TLS http server vertx.createHttpServer(new HttpServerOptions().setKeyStoreOptions(new JksOptions() .setPath("server-keystore.jks") .setPassword("wibble")) .setSsl(true) ).requestHandler(req -> { req.response().end(); }).listen(8443, listenResult -> { if (listenResult.failed()) { System.out.println("Could not start HTTP server"); listenResult.cause().printStackTrace(); } else { System.out.println("Server started"); } }); } }
.setHost(DEFAULT_HTTPS_HOST) .setUseAlpn(true) .setSsl(true) .addEnabledCipherSuite("TLS_RSA_WITH_AES_128_CBC_SHA") // Non Diffie-helman -> debuggable in wireshark .setPemKeyCertOptions(Cert.SERVER_PEM.get()).setSslEngineOptions(new OpenSSLEngineOptions());
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(new HttpServerOptions().setSsl(true).setKeyStoreOptions( new JksOptions().setPath("server-keystore.jks").setPassword("wibble") )); server.requestHandler(req -> { req.response().putHeader("content-type", "text/html").end("<html><body><h1>Hello from vert.x!</h1></body></html>"); }).listen(4443); } }
@Test public void testHttp2() { vertx.createHttpServer(new HttpServerOptions() .setUseAlpn(true) .setSsl(true) .setSslEngineOptions(new OpenSSLEngineOptions()) .setKeyCertOptions(Cert.SERVER_JKS.get()) ) .requestHandler(req -> req.response().end("OK")) .listen(8443, "localhost", onSuccess(s -> { HttpClient client = vertx.createHttpClient(new HttpClientOptions() .setSsl(true) .setSslEngineOptions(new OpenSSLEngineOptions()) .setTrustStoreOptions(Trust.SERVER_JKS.get())); client.getNow(8443, "localhost", "/somepath", onSuccess(resp -> { resp.bodyHandler(buff -> { assertEquals("OK", buff.toString()); testComplete(); }); })); })); await(); } }
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(new HttpServerOptions() .setSsl(true).setUseAlpn(true) .setPemKeyCertOptions(new PemKeyCertOptions() .setCertPath("server-cert.pem") .setKeyPath("server-key.pem") )); server.requestHandler(req -> { req.response() .putHeader("content-type", "text/html") .end("Hello using HTTP " + req.version()); }); server.listen(8443); } }
options.setUsePooledBuffers(usePooledBuffers); options.setIdleTimeout(idleTimeout); options.setSsl(ssl); options.setKeyCertOptions(keyCertOptions); options.setTrustOptions(trustOptions);
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(new HttpServerOptions(). setUseAlpn(true). setSsl(true). setPemKeyCertOptions(new PemKeyCertOptions().setKeyPath("server-key.pem").setCertPath("server-cert.pem") )); server.requestHandler(req -> { req.response().putHeader("content-type", "text/html").end("<html><body>" + "<h1>Hello from vert.x!</h1>" + "<p>version = " + req.version() + "</p>" + "</body></html>"); }).listen(8443); } }
.setHost(DEFAULT_HTTP_HOST) .setKeyCertOptions(Cert.SERVER_PEM.get()) .setSsl(true) .setUseAlpn(useAlpn); try {
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(new HttpServerOptions() .setSsl(true).setUseAlpn(true) .setPemKeyCertOptions(new PemKeyCertOptions() .setCertPath("server-cert.pem") .setKeyPath("server-key.pem") )); server.requestHandler(req -> { req.response() .putHeader("content-type", "text/html") .end("Hello using HTTP " + req.version()); }); server.listen(8443); } }
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(new HttpServerOptions(). setUseAlpn(true). setSsl(true). setPemKeyCertOptions(new PemKeyCertOptions().setKeyPath("server-key.pem").setCertPath("server-cert.pem") )); server.requestHandler(req -> { HttpServerResponse resp = req.response(); req.customFrameHandler(frame -> { System.out.println("Received client frame " + frame.payload().toString("UTF-8")); // Write the sam resp.writeCustomFrame(10, 0, Buffer.buffer("pong")); }); }).listen(8443); } }
private void testStore(HttpServerOptions serverOptions, List<String> expectedPossiblePrefixes, String expectedSuffix) { serverOptions.setSsl(true); serverOptions.setPort(4043); HttpServer server = vertx.createHttpServer(serverOptions);
@Override public void start() throws Exception { VertxServer server = VertxServerBuilder.forPort(vertx, 8080) .addService(new GreeterGrpc.GreeterVertxImplBase() { @Override public void sayHello(HelloRequest request, Future<HelloReply> future) { System.out.println("Hello " + request.getName()); future.complete(HelloReply.newBuilder().setMessage(request.getName()).build()); } }) .useSsl(options -> options .setSsl(true) .setUseAlpn(true) .setKeyStoreOptions(new JksOptions() .setPath("tls/server-keystore.jks") .setPassword("wibble"))) .build(); server.start(ar -> { if (ar.succeeded()) { System.out.println("gRPC service started"); } else { System.out.println("Could not start server " + ar.cause().getMessage()); } }); } }
@Override public void start() throws Exception { SelfSignedCertificate certificate = SelfSignedCertificate.create(); HttpServerOptions serverOptions = new HttpServerOptions() .setSsl(true) .setKeyCertOptions(certificate.keyCertOptions()); vertx.createHttpServer(serverOptions).requestHandler(req -> { System.out.println("Got request " + req.uri()); for (String name : req.headers().names()) { System.out.println(name + ": " + req.headers().get(name)); } req.handler(data -> System.out.println("Got data " + data.toString("ISO-8859-1"))); req.endHandler(v -> { // Now send back a response req.response().setChunked(true); for (int i = 0; i < 10; i++) { req.response().write("server-data-chunk-" + i); } req.response().end(); }); }).listen(8282); }
@Override public void start() throws Exception { final Image image = new Image(vertx, "coin.png"); Router router = Router.router(vertx); router.get("/").handler(ctx -> { ctx.response() .putHeader("Content-Type", "text/html") .end(image.generateHTML(16)); }); router.get("/img/:x/:y").handler(ctx -> { ctx.response() .putHeader("Content-Type", "image/png") .end(image.getPixel(Integer.parseInt(ctx.pathParam("x")), Integer.parseInt(ctx.pathParam("y")))); }); vertx.createHttpServer( new HttpServerOptions() .setSsl(true) .setUseAlpn(true) .setPemKeyCertOptions(new PemKeyCertOptions().setKeyPath("tls/server-key.pem").setCertPath("tls/server-cert.pem"))).requestHandler(router) .listen(8443); } }
static HttpServerOptions createHttp2ServerOptions(int port, String host) { return new HttpServerOptions() .setPort(port) .setHost(host) .setUseAlpn(true) .setSsl(true) .addEnabledCipherSuite("TLS_RSA_WITH_AES_128_CBC_SHA") // Non Diffie-helman -> debuggable in wireshark .setKeyStoreOptions(Cert.SERVER_JKS.get()); };
@Test public void testWebsocketAbs() { SelfSignedCertificate certificate = SelfSignedCertificate.create(); HttpServerOptions serverOptions = new HttpServerOptions().setPort(HttpTestBase.DEFAULT_HTTPS_PORT) .setSsl(true) .setKeyCertOptions(certificate.keyCertOptions()); HttpClientOptions clientOptions = new HttpClientOptions() .setTrustAll(true) .setVerifyHost(false); client = vertx.createHttpClient(clientOptions); server = vertx.createHttpServer(serverOptions).requestHandler(request -> { if ("/test".equals(request.path())) { request.upgrade().close(); } else { request.response().end(); } }).listen(onSuccess(server -> { String url = "wss://" + clientOptions.getDefaultHost() + ":" + HttpTestBase.DEFAULT_HTTPS_PORT + "/test"; client.websocketAbs(url, null, null, null, ws -> { ws.closeHandler(v -> { testComplete(); }); }, null); })); await(); }
@Test public void testRedirectFromSSL() throws Exception { HttpServer redirectServer = vertx.createHttpServer(new HttpServerOptions() .setSsl(true) .setKeyStoreOptions(Cert.SERVER_JKS.get()) .setHost(DEFAULT_HTTP_HOST) .setPort(DEFAULT_HTTP_PORT) ).requestHandler(req -> { req.response().setStatusCode(303).putHeader("location", "http://" + DEFAULT_HTTP_HOST + ":4043/" + DEFAULT_TEST_URI).end(); }); startServer(redirectServer); RequestOptions options = new RequestOptions().setHost(DEFAULT_HTTP_HOST).setURI(DEFAULT_TEST_URI).setPort(4043); testTLS(Cert.NONE, Trust.SERVER_JKS, Cert.NONE, Trust.NONE) .clientSSL(true) .serverSSL(false) .requestOptions(options) .followRedirects(true) .pass(); } }
try { server.close(); server = vertx.createHttpServer(serverOptions.setUseAlpn(false).setSsl(false).setHost(DEFAULT_HTTP_HOST).setPort(DEFAULT_HTTP_PORT)); server.requestHandler(req -> { MultiMap headers = req.headers();
@Test public void testClearClientSslOptions() { SelfSignedCertificate certificate = SelfSignedCertificate.create(); HttpServerOptions serverOptions = new HttpServerOptions().setPort(HttpTestBase.DEFAULT_HTTPS_PORT) .setSsl(true) .setKeyCertOptions(certificate.keyCertOptions()); HttpClientOptions clientOptions = new HttpClientOptions() .setTrustAll(true) .setVerifyHost(false); client = vertx.createHttpClient(clientOptions); server = vertx.createHttpServer(serverOptions).websocketHandler(WebSocketBase::close).listen(onSuccess(server -> { RequestOptions requestOptions = new RequestOptions().setPort(HttpTestBase.DEFAULT_HTTPS_PORT).setSsl(true); client.websocket(requestOptions, ws -> { ws.closeHandler(v -> { testComplete(); }); }); })); await(); }
@Test public void testNetClientInternalTLS() throws Exception { client.close(); client = vertx.createNetClient(new NetClientOptions().setSsl(true).setTrustStoreOptions(Trust.SERVER_JKS.get())); testNetClientInternal_(new HttpServerOptions() .setHost("localhost") .setPort(1234) .setSsl(true) .setKeyStoreOptions(Cert.SERVER_JKS.get()), true); }