This is an automated email from the ASF dual-hosted git repository.
robbie pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new 8bdffe872c ARTEMIS-4176 Fix console custom root redirect
8bdffe872c is described below
commit 8bdffe872c36d3033db8e50cf28a9eb3bf69b2c5
Author: Domenico Francesco Bruscino <[email protected]>
AuthorDate: Fri Feb 17 09:11:02 2023 +0100
ARTEMIS-4176 Fix console custom root redirect
---
.../activemq/artemis/component/DefaultHandler.java | 2 +-
.../activemq/cli/test/WebServerComponentTest.java | 41 ++++++++++++++++++++++
2 files changed, 42 insertions(+), 1 deletion(-)
diff --git
a/artemis-web/src/main/java/org/apache/activemq/artemis/component/DefaultHandler.java
b/artemis-web/src/main/java/org/apache/activemq/artemis/component/DefaultHandler.java
index b068e1d78a..a53da3de76 100644
---
a/artemis-web/src/main/java/org/apache/activemq/artemis/component/DefaultHandler.java
+++
b/artemis-web/src/main/java/org/apache/activemq/artemis/component/DefaultHandler.java
@@ -40,7 +40,7 @@ public class DefaultHandler extends
org.eclipse.jetty.server.handler.DefaultHand
HttpServletRequest request,
HttpServletResponse response) throws IOException,
ServletException {
if (rootRedirectLocation != null && target.matches("^$|/")) {
- response.sendRedirect("/console");
+ response.sendRedirect(rootRedirectLocation);
} else {
super.handle(target, baseRequest, request, response);
}
diff --git
a/artemis-web/src/test/java/org/apache/activemq/cli/test/WebServerComponentTest.java
b/artemis-web/src/test/java/org/apache/activemq/cli/test/WebServerComponentTest.java
index 46556d7a39..d818790eba 100644
---
a/artemis-web/src/test/java/org/apache/activemq/cli/test/WebServerComponentTest.java
+++
b/artemis-web/src/test/java/org/apache/activemq/cli/test/WebServerComponentTest.java
@@ -23,8 +23,10 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URISyntaxException;
+import java.net.URL;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
@@ -454,6 +456,45 @@ public class WebServerComponentTest extends Assert {
Assert.assertFalse(webServerComponent.isStarted());
}
+ @Test
+ public void testDefaultRootRedirect() throws Exception {
+ testRootRedirect(null, 404, null);
+ }
+
+ @Test
+ public void testCustomRootRedirect() throws Exception {
+ testRootRedirect("test-root-redirect", 302, "test-root-redirect");
+ }
+
+ public void testRootRedirect(String rootRedirectLocation, int
expectedResponseCode, String expectedResponseLocation) throws Exception {
+ BindingDTO bindingDTO = new BindingDTO();
+ bindingDTO.uri = "http://localhost:0";
+ WebServerDTO webServerDTO = new WebServerDTO();
+ webServerDTO.setBindings(Collections.singletonList(bindingDTO));
+ webServerDTO.path = "";
+ webServerDTO.rootRedirectLocation = rootRedirectLocation;
+
+ WebServerComponent webServerComponent = new WebServerComponent();
+ webServerComponent.configure(webServerDTO, null, null);
+ webServerComponent.start();
+ try {
+ int port = webServerComponent.getPort(0);
+ java.net.URL url = new URL("http://localhost:" + port);
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn.setInstanceFollowRedirects(false);
+ try {
+ assertEquals(expectedResponseCode, conn.getResponseCode());
+ if (expectedResponseLocation != null) {
+
assertTrue(conn.getHeaderField("Location").endsWith(webServerDTO.rootRedirectLocation));
+ }
+ } finally {
+ conn.disconnect();
+ }
+ } finally {
+ webServerComponent.stop(true);
+ }
+ }
+
private void createTestWar(String warName) throws Exception {
File warFile = new File("target", warName);
File srcFile = new File("src/test/webapp");