private Single<HttpResponse<Buffer>> callService( Pair<ClientRequest, HttpDataSourceSettings> serviceData, HttpMethod method) { final Single<HttpResponse<Buffer>> httpResponse; final ClientRequest serviceRequest = serviceData.getLeft(); final HttpDataSourceSettings serviceMetadata = serviceData.getRight(); final HttpRequest<Buffer> request = webClient .request(method, serviceMetadata.getPort(), serviceMetadata.getDomain(), serviceRequest.getPath()); updateRequestQueryParams(request, serviceMetadata); updateRequestHeaders(request, serviceRequest, serviceMetadata); overrideRequestHeaders(request, serviceMetadata); if (!serviceRequest.getFormAttributes().isEmpty()) { httpResponse = request.rxSendForm(serviceRequest.getFormAttributes()); } else { httpResponse = request.rxSend(); } return httpResponse; }
private Single<HttpResponse<Buffer>> callService( Pair<ClientRequest, HttpFormsSettings> serviceData, HttpMethod method) { final Single<HttpResponse<Buffer>> httpResponse; final ClientRequest serviceRequest = serviceData.getLeft(); final HttpFormsSettings serviceMetadata = serviceData.getRight(); final HttpRequest<Buffer> request = webClient .request(method, serviceMetadata.getPort(), serviceMetadata.getDomain(), serviceRequest.getPath()); updateRequestQueryParams(request, serviceMetadata); updateRequestHeaders(request, serviceRequest, serviceMetadata); overrideRequestHeaders(request, serviceMetadata); if (!serviceRequest.getFormAttributes().isEmpty()) { httpResponse = request.rxSendForm(serviceRequest.getFormAttributes()); } else { httpResponse = request.rxSend(); } return httpResponse; }
private Single<HttpResponse<Buffer>> callService( Pair<ClientRequest, ServiceSettings> serviceData, HttpMethod method) { final Single<HttpResponse<Buffer>> httpResponse; final ClientRequest serviceRequest = serviceData.getLeft(); final ServiceSettings serviceMetadata = serviceData.getRight(); final HttpRequest<Buffer> request = webClient .request(method, serviceMetadata.getPort(), serviceMetadata.getDomain(), serviceRequest.getPath()); updateRequestQueryParams(request, serviceMetadata); updateRequestHeaders(request, serviceRequest, serviceMetadata); overrideRequestHeaders(request, serviceMetadata); if (!serviceRequest.getFormAttributes().isEmpty()) { httpResponse = request.rxSendForm(serviceRequest.getFormAttributes()); } else { httpResponse = request.rxSend(); } return httpResponse; }
private void testPostRequest(VertxTestContext context, Vertx vertx, String url, Consumer<HttpResponse<Buffer>> expectedResponse) { WebClient client = WebClient.create(vertx); MultiMap formData = MultiMap.caseInsensitiveMultiMap(); formData.add("a", "b"); Single<HttpResponse<Buffer>> httpResponseSingle = client .post(KnotxServerRoutingTest.KNOTX_SERVER_PORT, KnotxServerRoutingTest.KNOTX_SERVER_ADDRESS, url) .rxSendForm(formData); subscribeToResult_shouldSucceed(context, httpResponseSingle, expectedResponse); }
@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()); }); }