From 4c1fa6876623c888f60881e407b2ed2991561f32 Mon Sep 17 00:00:00 2001
From: "LAPTOP-FVKRR5D0\\jabcc" <jabcckdef@gmail.com>
Date: Mon, 18 Jul 2022 19:05:37 +0800
Subject: [PATCH] feat: global error handler for debug

---
 .../common/handler/RestExceptionHandler.java  | 25 +++++++++++--------
 .../prlab/ecsimple/config/SecurityConfig.java |  3 ++-
 .../ecsimple/service/OrderServiceImpl.java    |  2 +-
 3 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/src/main/java/edu/prlab/ecsimple/common/handler/RestExceptionHandler.java b/src/main/java/edu/prlab/ecsimple/common/handler/RestExceptionHandler.java
index ebaab0f..defe285 100644
--- a/src/main/java/edu/prlab/ecsimple/common/handler/RestExceptionHandler.java
+++ b/src/main/java/edu/prlab/ecsimple/common/handler/RestExceptionHandler.java
@@ -13,21 +13,24 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.context.request.WebRequest;
 import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
 
+/**
+ * 全域錯誤處理
+ */
 @Order(Ordered.HIGHEST_PRECEDENCE)
 @ControllerAdvice
 @Slf4j
 public class RestExceptionHandler extends ResponseEntityExceptionHandler {
 
-    @ExceptionHandler(Exception.class)
-    protected ResponseEntity<Object> handleAll(Exception ex, WebRequest request) {
-        ex.printStackTrace();
-        return handleExceptionInternal(ex, ex.getMessage(), new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR, request);
-    }
+//    @ExceptionHandler(Exception.class)
+//    protected ResponseEntity<Object> handleAll(Exception ex, WebRequest request) {
+//        ex.printStackTrace();
+//        return handleExceptionInternal(ex, ex.getMessage(), new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR, request);
+//    }
 
-    @NonNull
-    @Override
-    protected ResponseEntity<Object> handleHttpMessageNotReadable(
-            @NonNull HttpMessageNotReadableException ex, @NonNull HttpHeaders headers, @NonNull HttpStatus status, @NonNull WebRequest request) {
-        return new ResponseEntity<>(ex.getMessage(), new HttpHeaders(), HttpStatus.BAD_REQUEST);
-    }
+//    @NonNull
+//    @Override
+//    protected ResponseEntity<Object> handleHttpMessageNotReadable(
+//            @NonNull HttpMessageNotReadableException ex, @NonNull HttpHeaders headers, @NonNull HttpStatus status, @NonNull WebRequest request) {
+//        return new ResponseEntity<>(ex.getMessage(), new HttpHeaders(), HttpStatus.BAD_REQUEST);
+//    }
 }
diff --git a/src/main/java/edu/prlab/ecsimple/config/SecurityConfig.java b/src/main/java/edu/prlab/ecsimple/config/SecurityConfig.java
index 781fcdb..3ea65c6 100644
--- a/src/main/java/edu/prlab/ecsimple/config/SecurityConfig.java
+++ b/src/main/java/edu/prlab/ecsimple/config/SecurityConfig.java
@@ -59,7 +59,8 @@ public class SecurityConfig {
                 .and()
                 .addFilterBefore(jwtAuthorizationFilter(), UsernamePasswordAuthenticationFilter.class)
                 .addFilter(new JwtAuthorizationFilter(authenticationManager, jwtTokenProvider))
-                .authorizeRequests();
+                .authorizeRequests()
+                .anyRequest().authenticated();
         http.headers().frameOptions().disable();
         return http.build();
     }
diff --git a/src/main/java/edu/prlab/ecsimple/service/OrderServiceImpl.java b/src/main/java/edu/prlab/ecsimple/service/OrderServiceImpl.java
index 8d11a04..74dd7be 100644
--- a/src/main/java/edu/prlab/ecsimple/service/OrderServiceImpl.java
+++ b/src/main/java/edu/prlab/ecsimple/service/OrderServiceImpl.java
@@ -70,7 +70,7 @@ public class OrderServiceImpl implements OrderService {
                 .map(order -> {
                     Collection<LineItem> lineItems = orderModel.getLineItems().stream()
                             .map(it -> addItemFromProduct(it)
-                                    .orElseThrow(() -> new RuntimeException("Save lineItem error")))
+                                    .orElseThrow(() -> new BusinessException("Save lineItem error")))
                             .peek(it -> addItemToOrder(order.getIid(), it.getSku()))
                             .collect(Collectors.toList());
                     order.setLineItems(lineItems);
-- 
2.26.0