huangzqa 4 жил өмнө
parent
commit
f376d8781d

+ 13 - 7
src/main/java/com/dragonsoft/dcuc/approvegateway/controller/ApproveErrorController.java

@@ -20,16 +20,22 @@ public class ApproveErrorController {
 
     @GetMapping(value = "/error")
     public ResponseEntity<ResponseStatus> error(HttpServletRequest request) {
-        String message = request.getAttribute("javax.servlet.error.message").toString();
-        Throwable throwable = (Throwable) request.getAttribute("javax.servlet.error.exception");
+        Object attribute = request.getAttribute("javax.servlet.error.exception");
+        Throwable throwable = (Throwable) attribute;
 
-        if (throwable.getCause() instanceof ApplicationException) {
-            ApplicationException ex = (ApplicationException) throwable.getCause();
-            int status = ex.getStatusCode() == 0 ? 500 : ex.getStatusCode();
-            return new ResponseEntity<>(new ResponseStatus(String.valueOf(status), ex.getMessage()), HttpStatus.resolve(HttpCode.PARAM_VERIFY_ERROR.getCode()));
+        if (throwable != null) {
+            if (throwable.getCause() instanceof ApplicationException) {
+                ApplicationException ex = (ApplicationException) throwable.getCause();
+                int status = ex.getStatusCode() == 0 ? 500 : ex.getStatusCode();
+                assert HttpStatus.resolve(HttpCode.PARAM_VERIFY_ERROR.getCode()) != null;
+                return new ResponseEntity<>(new ResponseStatus(String.valueOf(status), ex.getMessage()), HttpStatus.resolve(HttpCode.PARAM_VERIFY_ERROR.getCode()));
+            } else {
+                return new ResponseEntity<>(ResponseStatus.fail("500", "未知异常[" + throwable.getMessage() + "]"), HttpStatus.BAD_GATEWAY);
+            }
         } else {
-            return new ResponseEntity<>(ResponseStatus.fail("500", "未知异常[" + throwable.getMessage() + "]"), HttpStatus.BAD_GATEWAY);
+            return new ResponseEntity<>(ResponseStatus.fail("500", "未知异常"), HttpStatus.BAD_GATEWAY);
         }
 
+
     }
 }

+ 11 - 2
src/main/java/com/dragonsoft/dcuc/approvegateway/filter/BimUserInfoPreFilter.java

@@ -7,6 +7,7 @@ import com.dragonsoft.dcuc.approvegateway.Constants;
 import com.dragonsoft.dcuc.approvegateway.business.BimBusiness;
 import com.dragonsoft.dcuc.approvegateway.pojo.BimUserInfoItemRespVO;
 import com.dragonsoft.dcuc.approvegateway.properties.DcucApproveProperties;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.security.BaseSecurityUser;
 import com.dragonsoft.duceap.base.exception.ApplicationException;
 import com.dragonsoft.duceap.base.utils.UserContextUtils;
@@ -79,9 +80,17 @@ public class BimUserInfoPreFilter extends ZuulFilter {
             ctx.addZuulRequestHeader(JwtTokenUtils.AUTHORIZATION_HEADER, JwtTokenUtils.TOKEN_PREFIX + jwtToken);
             logger.info("登录jwtToken:{}", jwtToken);
         } else {
-            BaseSecurityUser securityUser = getSecurityUser();
-            UserContextUtils.setCurrentUser(securityUser);
+            currentUser = getSecurityUser();
+            UserContextUtils.setCurrentUser(currentUser);
         }
+
+        if (currentUser == null) {
+            //无获取到用户信息不对该请求进行路由
+            ctx.setSendZuulResponse(false);
+            ResponseStatus responseStatus = ResponseStatus.fail("未登陆");
+            ctx.setResponseBody(JsonUtils.toJSONString(responseStatus));
+        }
+
         return null;
     }