static JsonObject mapJsonObjectOrError(final HttpResponse<JsonObject> response) { if (response.statusCode() < 200 || response.statusCode() > 299) { throw new RuntimeException(response.statusMessage()); } return response.body(); }
static JsonArray mapJsonArrayOrError(final HttpResponse<JsonArray> response) { if (response.statusCode() < 200 || response.statusCode() > 299) { throw new RuntimeException(response.statusMessage()); } return response.body(); } }
private void logResponse(Pair<ClientRequest, HttpDataSourceSettings> request, HttpResponse<Buffer> resp) { if (resp.statusCode() >= 400 && resp.statusCode() < 600) { LOGGER.error("{} {} -> Got response {}, headers[{}]", logResponseData(request, resp)); } else if (LOGGER.isDebugEnabled()) { LOGGER.debug("{} {} -> Got response {}, headers[{}]", logResponseData(request, resp)); } }
private void logResponse(Pair<ClientRequest, HttpFormsSettings> request, HttpResponse<Buffer> resp) { if (resp.statusCode() >= 400 && resp.statusCode() < 600) { LOGGER.error("{} {} -> Got response {}, headers[{}]", logResponseData(request, resp)); } else if (LOGGER.isDebugEnabled()) { LOGGER.debug("{} {} -> Got response {}, headers[{}]", logResponseData(request, resp)); } }
private void logResponse(Pair<ClientRequest, ServiceSettings> request, HttpResponse<Buffer> resp) { if (resp.statusCode() >= 400 && resp.statusCode() < 600) { LOGGER.error("{} {} -> Got response {}, headers[{}]", logResponseData(request, resp)); } else if (LOGGER.isDebugEnabled()) { LOGGER.debug("{} {} -> Got response {}, headers[{}]", logResponseData(request, resp)); } }
private Object[] logResponseData(Pair<ClientRequest, HttpDataSourceSettings> request, HttpResponse<Buffer> resp) { Object[] data = { request.getLeft().getMethod(), toUrl(request), resp.statusCode(), DataObjectsUtil.toString(resp.headers())}; return data; }
private Object[] logResponseData(Pair<ClientRequest, HttpFormsSettings> request, HttpResponse<Buffer> resp) { Object[] data = { request.getLeft().getMethod(), toUrl(request), resp.statusCode(), DataObjectsUtil.toString(resp.headers())}; return data; }
private Object[] logResponseData(Pair<ClientRequest, ServiceSettings> request, HttpResponse<Buffer> resp) { Object[] data = { request.getLeft().getMethod(), toUrl(request), resp.statusCode(), DataObjectsUtil.toString(resp.headers())}; return data; }
@Override public Completable putTemplate(String templateName, String template) { return httpClient .put(URL_TEMPLATE + '/' + templateName) .putHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON) .rxSendBuffer(Buffer.buffer(template)) .flatMapCompletable(response -> { if (response.statusCode() != HttpStatusCode.OK_200) { logger.error("Unable to put template mapping: status[{}] template[{}] response[{}]", response.statusCode(), template, response.body()); return Completable.error(new ElasticsearchException("Unable to put template mapping")); } return Completable.complete(); }); }
private Single<ClientResponse> wrapResponse(HttpResponse<Buffer> response) { return toBody(response) .doOnSuccess(this::traceServiceCall) .map(buffer -> new ClientResponse() .setBody(buffer.getDelegate()) .setHeaders(response.headers()) .setStatusCode(response.statusCode()) ); }
private Single<ClientResponse> wrapResponse(HttpResponse<Buffer> response) { return toBody(response) .doOnSuccess(this::traceServiceCall) .map(buffer -> new ClientResponse() .setBody(buffer.getDelegate()) .setHeaders(response.headers()) .setStatusCode(response.statusCode()) ); }
private Single<ClientResponse> wrapResponse(HttpResponse<Buffer> response) { return toBody(response) .doOnSuccess(this::traceServiceCall) .map(buffer -> new ClientResponse() .setBody(buffer.getDelegate()) .setHeaders(response.headers()) .setStatusCode(response.statusCode()) ); }
private Maybe<User> profile(String accessToken) { return client.getAbs(configuration.getUserProfileUri()) .putHeader(HttpHeaders.AUTHORIZATION, "token " + accessToken) .rxSend() .toMaybe() .map(httpClientResponse -> { if (httpClientResponse.statusCode() != 200) { throw new BadCredentialsException(httpClientResponse.statusMessage()); } return createUser(httpClientResponse.bodyAsJsonObject()); }); }
private Maybe<User> profile(String accessToken) { return client.getAbs(configuration.getUserProfileUri()) .putHeader(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken) .rxSend() .toMaybe() .map(httpClientResponse -> { if (httpClientResponse.statusCode() != 200) { throw new BadCredentialsException(httpClientResponse.statusMessage()); } return createUser(httpClientResponse.bodyAsJsonObject()); }); }
private Maybe<User> profile(String accessToken) { return client.getAbs(configuration.getUserProfileUri()) .putHeader(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken) .rxSend() .toMaybe() .map(httpClientResponse -> { if (httpClientResponse.statusCode() != 200) { throw new BadCredentialsException(httpClientResponse.statusMessage()); } return createUser(httpClientResponse.bodyAsJsonObject()); }); }
private Maybe<User> profile(String accessToken) { return client.getAbs(configuration.getUserProfileUri()) .putHeader(HttpHeaders.AUTHORIZATION, "token " + accessToken) .rxSend() .toMaybe() .map(httpClientResponse -> { if (httpClientResponse.statusCode() != 200) { throw new BadCredentialsException(httpClientResponse.statusMessage()); } return createUser(httpClientResponse.bodyAsJsonObject()); }); }
@Test @KnotxApplyConfiguration("io/knotx/server/test-server.json") public void whenRequestingPostGlobalPathAndActionDoRedirect_expectRedirectResponse( VertxTestContext context, Vertx vertx) { createPassThroughKnot(vertx, "test-splitter"); createPassThroughKnot(vertx, "test-assembler"); createSimpleFailingKnot(vertx, "A-post-engine", HttpResponseStatus.MOVED_PERMANENTLY.code(), MultiMap.caseInsensitiveMultiMap().add("location", "/content/failed.html")); testPostRequest(context, vertx, "/content/local/simple.html", resp -> { assertEquals(HttpResponseStatus.MOVED_PERMANENTLY.code(), resp.statusCode()); assertEquals("/content/failed.html", resp.getHeader("location")); assertNotNull(resp.getHeader(EXPECTED_RESPONSE_HEADER)); assertEquals(EXPECTED_XSERVER_HEADER_VALUE, resp.getHeader(EXPECTED_RESPONSE_HEADER)); }); }
private void testGetRequest(VertxTestContext context, Vertx vertx, String url, String expectedResult) { WebClient client = WebClient.create(vertx); Single<HttpResponse<Buffer>> httpResponseSingle = client .get(KNOTX_SERVER_PORT, KNOTX_SERVER_ADDRESS, url).rxSend(); subscribeToResult_shouldSucceed(context, httpResponseSingle, resp -> { assertEquals(expectedResult, resp.body().toString(), "Wrong engines processed request, expected " + expectedResult); assertEquals(HttpResponseStatus.OK.code(), resp.statusCode()); assertNotNull(resp.getHeader(EXPECTED_RESPONSE_HEADER)); assertEquals(EXPECTED_XSERVER_HEADER_VALUE, resp.getHeader(EXPECTED_RESPONSE_HEADER)); }); }
@Test @KnotxApplyConfiguration("io/knotx/server/test-server-csrf.json") public void whenDoPostSecureWithoutCSRF_expectForbidden( VertxTestContext context, Vertx vertx) { createPassThroughKnot(vertx, "test-splitter"); createPassThroughKnot(vertx, "test-assembler"); createSimpleKnot(vertx, "some-knot", "test", null); MultiMap body = MultiMap.caseInsensitiveMultiMap().add("field", "value"); WebClient client = WebClient.create(vertx); Single<HttpResponse<Buffer>> httpResponseSingle = client .post(KNOTX_SERVER_PORT, KNOTX_SERVER_ADDRESS, "/content/local/simple.html") .rxSendForm(body); subscribeToResult_shouldSucceed(context, httpResponseSingle, result -> { assertEquals(HttpResponseStatus.FORBIDDEN.code(), result.statusCode()); }); }
@Test @KnotxApplyConfiguration("io/knotx/server/test-server-csrf.json") public void whenDoPostPublicWithoutCSRF_expectOk( VertxTestContext context, Vertx vertx) { createPassThroughKnot(vertx, "test-splitter"); createPassThroughKnot(vertx, "test-assembler"); createSimpleKnot(vertx, "some-knot", "test", null); MultiMap body = MultiMap.caseInsensitiveMultiMap().add("field", "value"); WebClient client = WebClient.create(vertx); Single<HttpResponse<io.vertx.reactivex.core.buffer.Buffer>> httpResponseSingle = client .post(KNOTX_SERVER_PORT, KNOTX_SERVER_ADDRESS, "/content/local/public.html") .rxSendForm(body); subscribeToResult_shouldSucceed(context, httpResponseSingle, resp -> { assertEquals(HttpResponseStatus.OK.code(), resp.statusCode()); }); }