From cfb261eb4fc9c75f5c13ec2c71bc7fcf05f64c81 Mon Sep 17 00:00:00 2001 From: ruibaby Date: Sun, 17 Mar 2019 09:27:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E5=88=AB=E6=B8=B2=E6=9F=93404?= =?UTF-8?q?=E5=92=8C500=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../halo/web/controller/core/CommonController.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java b/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java index 39d588c50..5994053a9 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java @@ -1,6 +1,8 @@ package cc.ryanc.halo.web.controller.core; import cc.ryanc.halo.logging.Logger; +import cc.ryanc.halo.model.entity.User; +import cc.ryanc.halo.model.support.HaloConst; import cn.hutool.core.text.StrBuilder; import org.springframework.boot.web.servlet.error.ErrorController; import org.springframework.stereotype.Controller; @@ -8,6 +10,7 @@ import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; /** *
@@ -31,11 +34,13 @@ public class CommonController implements ErrorController {
      * @return String
      */
     @GetMapping(value = ERROR_PATH)
-    public String handleError(HttpServletRequest request) {
+    public String handleError(HttpServletRequest request, HttpSession session) {
         final Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
 
         final String requestURI = request.getRequestURI();
 
+        final User user = (User) session.getAttribute(HaloConst.USER_SESSION_KEY);
+
         log.error("Error path: [{}], status: [{}]", request.getRequestURI(), statusCode);
 
         // Get the exception
@@ -47,14 +52,14 @@ public class CommonController implements ErrorController {
             if (StringUtils.startsWithIgnoreCase(throwable.getMessage(), "Could not resolve view with name '")) {
                 // TODO May cause unreasoned problem
                 // if Ftl was not found then redirect to /404
-                if (requestURI.contains("/admin")) {
+                if (requestURI.contains("/admin") && null != user) {
                     return "redirect:/admin/404";
                 } else {
                     return "redirect:/404";
                 }
             }
         }
-        if (requestURI.contains("/admin")) {
+        if (requestURI.contains("/admin") && null != user) {
             return "redirect:/admin/500";
         } else {
             return "redirect:/500";