From e8dde347177225ca3fc7ce73feb6c04f60d56e20 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Sat, 8 Feb 2025 17:33:14 +0100 Subject: [PATCH] * Bump jetty-version from 12.0.16 to 12.0.17 * Added test case for https://github.com/jetty/jetty.project/issues/12652. Signed-off-by: Simone Bordet --- pom.xml | 2 +- .../jetty/reactive/client/AbstractTest.java | 21 ++++++--------- .../jetty/reactive/client/ReactorTest.java | 26 +++++++++++++++++++ 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index 20048885..fb226ee2 100644 --- a/pom.xml +++ b/pom.xml @@ -84,7 +84,7 @@ UTF-8 - 12.0.16 + 12.0.17 3.1.10 6.2.2 2.0.16 diff --git a/src/test/java/org/eclipse/jetty/reactive/client/AbstractTest.java b/src/test/java/org/eclipse/jetty/reactive/client/AbstractTest.java index 6f029cbe..3799b79d 100644 --- a/src/test/java/org/eclipse/jetty/reactive/client/AbstractTest.java +++ b/src/test/java/org/eclipse/jetty/reactive/client/AbstractTest.java @@ -16,7 +16,6 @@ package org.eclipse.jetty.reactive.client; import java.util.List; - import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.HttpClientTransport; import org.eclipse.jetty.client.transport.HttpClientTransportOverHTTP; @@ -77,21 +76,17 @@ public void prepare(String protocol, Handler handler) throws Exception { } private ConnectionFactory createServerConnectionFactory(String protocol) { - switch (protocol) { - case "h2c": - return new HTTP2CServerConnectionFactory(httpConfiguration); - default: - return new HttpConnectionFactory(httpConfiguration); - } + return switch (protocol) { + case "h2c" -> new HTTP2CServerConnectionFactory(httpConfiguration); + default -> new HttpConnectionFactory(httpConfiguration); + }; } private HttpClientTransport createClientTransport(ClientConnector clientConnector, String protocol) { - switch (protocol) { - case "h2c": - return new HttpClientTransportOverHTTP2(new HTTP2Client(clientConnector)); - default: - return new HttpClientTransportOverHTTP(clientConnector); - } + return switch (protocol) { + case "h2c" -> new HttpClientTransportOverHTTP2(new HTTP2Client(clientConnector)); + default -> new HttpClientTransportOverHTTP(clientConnector); + }; } @AfterEach diff --git a/src/test/java/org/eclipse/jetty/reactive/client/ReactorTest.java b/src/test/java/org/eclipse/jetty/reactive/client/ReactorTest.java index e68d19ae..7647546f 100644 --- a/src/test/java/org/eclipse/jetty/reactive/client/ReactorTest.java +++ b/src/test/java/org/eclipse/jetty/reactive/client/ReactorTest.java @@ -21,6 +21,8 @@ import java.time.Duration; import java.util.Random; import java.util.concurrent.TimeoutException; +import org.eclipse.jetty.http.HttpHeader; +import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.io.Content; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Request; @@ -31,6 +33,7 @@ import org.springframework.http.client.reactive.JettyClientHttpConnector; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Hooks; +import reactor.core.publisher.Mono; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -95,4 +98,27 @@ public boolean handle(Request request, Response response, Callback callback) thr assertEquals(timeoutResult, responseContent); } + + @ParameterizedTest + @MethodSource("protocols") + public void test401(String protocol) throws Exception { + prepare(protocol, new Handler.Abstract() + { + @Override + public boolean handle(Request request, Response response, Callback callback) { + response.setStatus(HttpStatus.UNAUTHORIZED_401); + response.getHeaders().add(HttpHeader.WWW_AUTHENTICATE, "Basic realm=\"test\""); + callback.succeeded(); + return true; + } + }); + + var request = httpClient().newRequest(uri()); + ReactiveRequest reactiveRequest = ReactiveRequest.newBuilder(request).abortOnCancel(true).build(); + Mono responseMono = Mono.fromDirect(reactiveRequest.response()); + ReactiveResponse reactiveResponse = responseMono.block(Duration.ofSeconds(5)); + + assertNotNull(reactiveResponse); + assertEquals(HttpStatus.UNAUTHORIZED_401, reactiveResponse.getStatus()); + } }