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()))