ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end(jwt.generateToken(new JsonObject(), new JWTOptions().setExpiresInSeconds(60).setPermissions (authorities))); }); ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end("this secret is not defcon!"); }); ctx.response().setStatusCode(403).end(); return; ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end("this secret is defcon1!"); }); ctx.response().setStatusCode(403).end(); return; ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end("this secret is defcon2!"); }); ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end("this secret is defcon3!"); });
@Test public void testFollowRedirectPropagatesTimeout() throws Exception { AtomicInteger redirections = new AtomicInteger(); server.requestHandler(req -> { switch (redirections.getAndIncrement()) { case 0: String scheme = createBaseServerOptions().isSsl() ? "https" : "http"; req.response().setStatusCode(307).putHeader(HttpHeaders.LOCATION, scheme + "://localhost:8080/whatever").end(); break; } }); startServer(); AtomicBoolean done = new AtomicBoolean(); client.get(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/somepath", onFailure(t -> { if (done.compareAndSet(false, true)) { assertEquals(2, redirections.get()); testComplete(); } })).setFollowRedirects(true) .setTimeout(500).end(); await(); }
ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "text/html").end(res.result()); } else { ctx.fail(res.cause()); ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "application/json"); ctx.response().end(json.encode()); }); }); ctx.response().setStatusCode(201); ctx.response().end(); }); }); ctx.response().setStatusCode(204); ctx.response().end(); });
private void now(RoutingContext context) { logger.info("Time request from {}", context.request().remoteAddress()); JsonObject data = new JsonObject() .put("powered-by", "vertx") .put("current-time", System.currentTimeMillis()); context.response() .putHeader("Content-Type", "application/json") .end(data.encode()); } }
.setStatusCode(302) .putHeader("location", location.toString()) .end(); break; case "/redirected/from/client": assertEquals(value2, req.params().get("encoded2")); assertEquals(value3, req.params().get("encoded3")); req.response().end(); break; default:
ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "application/json"); ctx.response().end(json.encode()); }); }); ctx.fail(404); } else { ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "application/json"); ctx.response().end(user.encode()); ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "application/json"); ctx.response().end(newUser.encode()); }); ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "application/json"); ctx.response().end(user.encode()); }); ctx.response().setStatusCode(204); ctx.response().end(); });
@Test public void testFollowRedirectLimit() throws Exception { AtomicInteger redirects = new AtomicInteger(); server.requestHandler(req -> { int val = redirects.incrementAndGet(); if (val > 16) { fail(); } else { String scheme = createBaseServerOptions().isSsl() ? "https" : "http"; req.response().setStatusCode(301).putHeader(HttpHeaders.LOCATION, scheme + "://localhost:8080/otherpath").end(); } }); startServer(); client.get(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/somepath", onSuccess(resp -> { assertEquals(16, redirects.get()); assertEquals(301, resp.statusCode()); assertEquals("/otherpath", resp.request().path()); testComplete(); })).setFollowRedirects(true).end(); await(); }
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(new HttpServerOptions()); 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(8080); } }
@Test public void testFailWithStatusCodeSetContentTypeTextPlain() throws Exception { int statusCode = 404; String statusMessage = "Not Found"; router.route().handler(rc -> { rc.response().putHeader(HttpHeaders.CONTENT_TYPE, "text/plain"); rc.fail(statusCode); }); testRequest(HttpMethod.GET, "/", null, resp -> resp.bodyHandler(buff -> { checkTextResponse(buff, resp, statusCode, statusMessage); testComplete(); }), statusCode, statusMessage, null); await(); }
context.clearUser(); context.response().putHeader("location", "/").setStatusCode(302).end(); });
@Test public void testRedirectToSSL() throws Exception { HttpServer redirectServer = vertx.createHttpServer(new HttpServerOptions() .setHost(DEFAULT_HTTP_HOST) .setPort(DEFAULT_HTTP_PORT) ).requestHandler(req -> { req.response().setStatusCode(303).putHeader("location", "https://" + DEFAULT_HTTP_HOST + ":4043/" + DEFAULT_TEST_URI).end(); }); startServer(redirectServer); RequestOptions options = new RequestOptions().setHost(DEFAULT_HTTP_HOST).setURI(DEFAULT_TEST_URI).setPort(DEFAULT_HTTP_PORT); testTLS(Cert.NONE, Trust.SERVER_JKS, Cert.SERVER_JKS, Trust.NONE) .clientSSL(false) .serverSSL(true) .requestOptions(options) .followRedirects(true) .pass(); }
@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 testFailWithStatusCodeSetContentTypeTextHtml() throws Exception { int statusCode = 404; String statusMessage = "Not Found"; router.route().handler(rc -> { rc.response().putHeader(HttpHeaders.CONTENT_TYPE, "text/html"); rc.fail(statusCode); }); testRequest(HttpMethod.GET, "/", null, resp -> resp.bodyHandler(buff -> { checkHtmlResponse(buff, resp, statusCode, statusMessage); testComplete(); }), statusCode, statusMessage, null); await(); }