diff --git a/extensions-contrib/druid-rocketmq/pom.xml b/extensions-contrib/druid-rocketmq/pom.xml index 251961ba99ea..46d10be42871 100644 --- a/extensions-contrib/druid-rocketmq/pom.xml +++ b/extensions-contrib/druid-rocketmq/pom.xml @@ -40,6 +40,13 @@ com.alibaba.rocketmq rocketmq-client ${rocketmq.version} + + + + io.netty + netty-all + + org.apache.druid diff --git a/extensions-core/druid-basic-security/src/test/java/org/apache/druid/security/authentication/BasicHTTPAuthenticatorTest.java b/extensions-core/druid-basic-security/src/test/java/org/apache/druid/security/authentication/BasicHTTPAuthenticatorTest.java index 782c9dd21116..07134973e09d 100644 --- a/extensions-core/druid-basic-security/src/test/java/org/apache/druid/security/authentication/BasicHTTPAuthenticatorTest.java +++ b/extensions-core/druid-basic-security/src/test/java/org/apache/druid/security/authentication/BasicHTTPAuthenticatorTest.java @@ -31,7 +31,6 @@ import org.apache.druid.security.basic.authentication.entity.BasicAuthenticatorUser; import org.apache.druid.server.security.AuthConfig; import org.apache.druid.server.security.AuthenticationResult; -import org.asynchttpclient.util.Base64; import org.easymock.EasyMock; import org.junit.Test; @@ -82,9 +81,7 @@ public Map getUserMap(String authenticatorPrefix @Test public void testGoodPassword() throws IOException, ServletException { - String header = Base64.encode( - StringUtils.toUtf8("userA:helloworld") - ); + String header = StringUtils.utf8Base64("userA:helloworld"); header = StringUtils.format("Basic %s", header); HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class); @@ -113,9 +110,7 @@ public void testGoodPassword() throws IOException, ServletException @Test public void testBadPassword() throws IOException, ServletException { - String header = Base64.encode( - StringUtils.toUtf8("userA:badpassword") - ); + String header = StringUtils.utf8Base64("userA:badpassword"); header = StringUtils.format("Basic %s", header); HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class); @@ -139,9 +134,7 @@ public void testBadPassword() throws IOException, ServletException @Test public void testUnknownUser() throws IOException, ServletException { - String header = Base64.encode( - StringUtils.toUtf8("userB:helloworld") - ); + String header = StringUtils.utf8Base64("userB:helloworld"); header = StringUtils.format("Basic %s", header); HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class); @@ -165,9 +158,7 @@ public void testUnknownUser() throws IOException, ServletException @Test public void testRecognizedButMalformedBasicAuthHeader() throws IOException, ServletException { - String header = Base64.encode( - StringUtils.toUtf8("malformed decoded header data") - ); + String header = StringUtils.utf8Base64("malformed decoded header data"); header = StringUtils.format("Basic %s", header); HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class); @@ -214,9 +205,7 @@ public void testRecognizedButNotBase64BasicAuthHeader() throws IOException, Serv @Test public void testUnrecognizedHeader() throws IOException, ServletException { - String header = Base64.encode( - StringUtils.toUtf8("userA:helloworld") - ); + String header = StringUtils.utf8Base64("userA:helloworld"); header = StringUtils.format("NotBasic %s", header); HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class); diff --git a/java-util/src/main/java/org/apache/druid/java/util/common/StringUtils.java b/java-util/src/main/java/org/apache/druid/java/util/common/StringUtils.java index b69f81eff094..e4020990a6a2 100644 --- a/java-util/src/main/java/org/apache/druid/java/util/common/StringUtils.java +++ b/java-util/src/main/java/org/apache/druid/java/util/common/StringUtils.java @@ -28,6 +28,7 @@ import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import java.util.Base64; import java.util.IllegalFormatException; import java.util.Locale; @@ -218,4 +219,16 @@ public static String emptyToNullNonDruidDataString(@Nullable String string) return Strings.emptyToNull(string); //CHECKSTYLE.ON: Regexp } + + /** + * Convert an input to base 64 and return the utf8 string of that byte array + * + * @param input The string to convert to base64 + * + * @return the base64 of the input in string form + */ + public static String utf8Base64(String input) + { + return fromUtf8(Base64.getEncoder().encode(toUtf8(input))); + } } diff --git a/java-util/src/test/java/org/apache/druid/java/util/emitter/core/EmitterTest.java b/java-util/src/test/java/org/apache/druid/java/util/emitter/core/EmitterTest.java index c80736313e6e..ed85dbcedcef 100644 --- a/java-util/src/test/java/org/apache/druid/java/util/emitter/core/EmitterTest.java +++ b/java-util/src/test/java/org/apache/druid/java/util/emitter/core/EmitterTest.java @@ -31,7 +31,6 @@ import org.apache.druid.java.util.common.StringUtils; import org.apache.druid.java.util.common.lifecycle.Lifecycle; import org.apache.druid.java.util.emitter.service.UnitEvent; -import org.asynchttpclient.DefaultAsyncHttpClientConfig; import org.asynchttpclient.ListenableFuture; import org.asynchttpclient.Request; import org.asynchttpclient.Response; @@ -53,6 +52,7 @@ import java.util.Properties; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Stream; /** */ @@ -60,25 +60,33 @@ public class EmitterTest { private static final ObjectMapper jsonMapper = new ObjectMapper(); public static String TARGET_URL = "http://metrics.foo.bar/"; - public static final Response OK_RESPONSE = responseBuilder(HttpVersion.HTTP_1_1, HttpResponseStatus.CREATED) - .accumulate(new EagerResponseBodyPart(Unpooled.wrappedBuffer("Yay".getBytes(StandardCharsets.UTF_8)), true)) - .build(); - - public static final Response BAD_RESPONSE = responseBuilder(HttpVersion.HTTP_1_1, HttpResponseStatus.FORBIDDEN) - .accumulate(new EagerResponseBodyPart(Unpooled.wrappedBuffer("Not yay".getBytes(StandardCharsets.UTF_8)), true)) - .build(); + public static final Response OK_RESPONSE = Stream + .of(responseBuilder(HttpVersion.HTTP_1_1, HttpResponseStatus.CREATED)) + .map(b -> { + b.accumulate(new EagerResponseBodyPart(Unpooled.wrappedBuffer("Yay".getBytes(StandardCharsets.UTF_8)), true)); + return b.build(); + }).findFirst().get(); + + public static final Response BAD_RESPONSE = Stream + .of(responseBuilder(HttpVersion.HTTP_1_1, HttpResponseStatus.FORBIDDEN)) + .map(b -> { + b.accumulate(new EagerResponseBodyPart( + Unpooled.wrappedBuffer("Not yay".getBytes(StandardCharsets.UTF_8)), + true + )); + return b.build(); + }).findFirst().get(); private static Response.ResponseBuilder responseBuilder(HttpVersion version, HttpResponseStatus status) { - return new Response.ResponseBuilder() - .accumulate( - new NettyResponseStatus( - Uri.create(TARGET_URL), - new DefaultAsyncHttpClientConfig.Builder().build(), - new DefaultHttpResponse(version, status), - null - ) - ); + final Response.ResponseBuilder builder = new Response.ResponseBuilder(); + builder.accumulate( + new NettyResponseStatus( + Uri.create(TARGET_URL), + new DefaultHttpResponse(version, status), + null + )); + return builder; } diff --git a/pom.xml b/pom.xml index 9d127d7664ee..7b54762bf91e 100644 --- a/pom.xml +++ b/pom.xml @@ -77,9 +77,8 @@ 2.5 3.10.6.Final - - 4.0.52.Final + + 4.1.30.Final 1.7.12 2.8.3 @@ -680,7 +679,8 @@ org.asynchttpclient async-http-client - 2.0.37 + + 2.5.3 org.gridkit.lab