This is an automated email from the ASF dual-hosted git repository.

nicholasjiang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/paimon-webui.git


The following commit(s) were added to refs/heads/main by this push:
     new 92eb2744 [Improvement] Optimize forward to index interface (#386)
92eb2744 is described below

commit 92eb27441d90d1257fb2260c0af0032da3516239
Author: yangyang zhong <[email protected]>
AuthorDate: Fri Jun 14 02:07:37 2024 +0800

    [Improvement] Optimize forward to index interface (#386)
---
 .../web/server/configrue/SaTokenConfigurer.java    |  2 +-
 ...ErrorController.java => ForwardController.java} | 29 ++++++++--------------
 ...trollerTest.java => ForwardControllerTest.java} |  8 +++---
 3 files changed, 15 insertions(+), 24 deletions(-)

diff --git 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/configrue/SaTokenConfigurer.java
 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/configrue/SaTokenConfigurer.java
index aca3bfbb..d0ca067a 100644
--- 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/configrue/SaTokenConfigurer.java
+++ 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/configrue/SaTokenConfigurer.java
@@ -33,6 +33,6 @@ public class SaTokenConfigurer implements WebMvcConfigurer {
     public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(new SaInterceptor(handle -> 
StpUtil.checkLogin()))
                 .addPathPatterns("/**")
-                .excludePathPatterns(Arrays.asList("/api/login", "/error", 
"/ui/**"));
+                .excludePathPatterns(Arrays.asList("/api/login", "/ui/**"));
     }
 }
diff --git 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/PaimonWebErrorController.java
 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/ForwardController.java
similarity index 55%
rename from 
paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/PaimonWebErrorController.java
rename to 
paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/ForwardController.java
index 690b340b..2d67d2b8 100644
--- 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/PaimonWebErrorController.java
+++ 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/ForwardController.java
@@ -18,32 +18,23 @@
 
 package org.apache.paimon.web.server.controller;
 
-import org.springframework.boot.web.servlet.error.ErrorController;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.servlet.ModelAndView;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.http.HttpServletRequest;
-
-/** PaimonWebErrorController. */
+/**
+ * When accessing front-end pages through the back-end server, requests to 
/ui/{routePath} ought to
+ * be forwarded to ui/index.html to guarantee correct page rendering.
+ */
 @Controller
-public class PaimonWebErrorController implements ErrorController {
+public class ForwardController {
 
-    @RequestMapping("/error")
-    public ModelAndView handleError(HttpServletRequest request) {
-        Object status = 
request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
+    @GetMapping(value = "/ui/{[path:[^\\.]*}")
+    public ModelAndView forwardToIndex() {
         ModelAndView modelAndView = new ModelAndView();
-        if (status != null) {
-            Integer statusCode = Integer.valueOf(status.toString());
-            if (statusCode == HttpStatus.NOT_FOUND.value()) {
-                modelAndView.setStatus(HttpStatus.OK);
-                modelAndView.setViewName("forward:/ui/index.html");
-                return modelAndView;
-            }
-            modelAndView.setStatus(HttpStatus.valueOf(statusCode));
-        }
+        modelAndView.setStatus(HttpStatus.OK);
+        modelAndView.setViewName("forward:/ui/index.html");
         return modelAndView;
     }
 }
diff --git 
a/paimon-web-server/src/test/java/org/apache/paimon/web/server/controller/PaimonWebErrorControllerTest.java
 
b/paimon-web-server/src/test/java/org/apache/paimon/web/server/controller/ForwardControllerTest.java
similarity index 88%
rename from 
paimon-web-server/src/test/java/org/apache/paimon/web/server/controller/PaimonWebErrorControllerTest.java
rename to 
paimon-web-server/src/test/java/org/apache/paimon/web/server/controller/ForwardControllerTest.java
index 7cfeb5c4..9b004088 100644
--- 
a/paimon-web-server/src/test/java/org/apache/paimon/web/server/controller/PaimonWebErrorControllerTest.java
+++ 
b/paimon-web-server/src/test/java/org/apache/paimon/web/server/controller/ForwardControllerTest.java
@@ -31,18 +31,18 @@ import 
org.springframework.test.web.servlet.result.MockMvcResultMatchers;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.http.HttpServletRequest;
 
-/** Test for {@link PaimonWebErrorController}. */
+/** Test for {@link ForwardController}. */
 @SpringBootTest
 @AutoConfigureMockMvc
-public class PaimonWebErrorControllerTest extends ControllerTestBase {
+public class ForwardControllerTest extends ControllerTestBase {
 
     @MockBean private HttpServletRequest request;
 
     @Test
-    public void testHandleErrorNotFoundRedirect() throws Exception {
+    public void testForwardIndex() throws Exception {
         MvcResult result =
                 mockMvc.perform(
-                                MockMvcRequestBuilders.get("/error")
+                                MockMvcRequestBuilders.get("/ui/login")
                                         .requestAttr(
                                                 
RequestDispatcher.ERROR_STATUS_CODE,
                                                 HttpStatus.NOT_FOUND.value()))

Reply via email to