浏览代码

增加健康检查以及加解密逻辑优化

xudm 2 月之前
父节点
当前提交
3629724c3b

+ 14 - 0
src/main/java/com/xs/core/common/annotation/EntryIgnore.java

@@ -0,0 +1,14 @@
+package com.xs.core.common.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 忽略接口响应密
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EntryIgnore {
+}

+ 16 - 0
src/main/java/com/xs/core/controller/actuator/ActuatorController.java

@@ -0,0 +1,16 @@
+package com.xs.core.controller.actuator;
+
+import cn.dev33.satoken.annotation.SaIgnore;
+import com.xs.core.common.annotation.EntryIgnore;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class ActuatorController {
+    @SaIgnore
+    @GetMapping("/actuator/health")
+    @EntryIgnore
+    public String health() {
+        return "UP";
+    }
+}

+ 8 - 2
src/main/java/com/xs/core/filter/ResponseHandler.java

@@ -1,11 +1,11 @@
 package com.xs.core.filter;
 
-import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.util.ReflectUtil;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.JSONWriter;
 import com.alibaba.fastjson2.filter.ContextValueFilter;
+import com.xs.core.common.annotation.EntryIgnore;
 import com.xs.core.utils.SecurityUtil;
 import jakarta.servlet.http.HttpServletRequest;
 import org.apache.commons.lang3.StringUtils;
@@ -23,6 +23,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
 
 import java.lang.reflect.Field;
+import java.lang.reflect.Method;
 import java.time.LocalDateTime;
 
 /**
@@ -44,7 +45,12 @@ public class ResponseHandler implements ResponseBodyAdvice<Object> {
      */
     @Override
     public boolean supports(MethodParameter methodParameter, Class<? extends HttpMessageConverter<?>> aClass) {
-        return true;
+        Method method = methodParameter.getMethod();
+        //如过方法上有注解,直接返回false,不走beforeBodyWrite方法
+        if (method != null && method.isAnnotationPresent(EntryIgnore.class)) {
+            return false;
+        }
+        return isEncryption;
     }
 
     /**

+ 1 - 1
src/main/resources/application-dev.yml

@@ -135,7 +135,7 @@ sa-token:
 
 # 配置请求是否加密
 encryption:
-  isEncryption: false
+  isEncryption: true
   requestPrivateKey: 14FDF4948E60F856524FBB1175E83716558B8CBF71A68318875F506B9C6D2A4A
   requestPublicKey: 04F36CD10986CE214D0E5C540C30E0552DC8499B64E5B2709245D03BF2CADAA0CCA3C2BC2C8DB511012A50FAA1E43FCD4B8ABC521418EAB2D96F0075AD940EB25F
   responsePrivateKey: 00C83135E19EBD958593091F42A3442DE3D03D975A5DBD4CE19F85C9FBF2D364B7

+ 1 - 1
src/main/resources/application-prod.yml

@@ -135,7 +135,7 @@ sa-token:
 
 # 配置请求是否加密
 encryption:
-  isEncryption: false
+  isEncryption: true
   requestPrivateKey: 14FDF4948E60F856524FBB1175E83716558B8CBF71A68318875F506B9C6D2A4A
   requestPublicKey: 04F36CD10986CE214D0E5C540C30E0552DC8499B64E5B2709245D03BF2CADAA0CCA3C2BC2C8DB511012A50FAA1E43FCD4B8ABC521418EAB2D96F0075AD940EB25F
   responsePrivateKey: 00C83135E19EBD958593091F42A3442DE3D03D975A5DBD4CE19F85C9FBF2D364B7