From 0fd001f229ab3f5c88cf4b327e4e635e616dbc05 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期日, 04 二月 2024 10:30:15 +0800
Subject: [PATCH] update 优化 GET 方法响应体支持加密

---
 ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/CryptoFilter.java |   19 ++++++++-----------
 1 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/CryptoFilter.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/CryptoFilter.java
index b43881a..16d24fc 100644
--- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/CryptoFilter.java
+++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/CryptoFilter.java
@@ -18,7 +18,6 @@
 import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
 
 import java.io.IOException;
-import java.io.PrintWriter;
 
 
 /**
@@ -37,8 +36,9 @@
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         HttpServletRequest servletRequest = (HttpServletRequest) request;
         HttpServletResponse servletResponse = (HttpServletResponse) response;
-
-        boolean responseFlag = false;
+        // 鑾峰彇鍔犲瘑娉ㄨВ
+        ApiEncrypt apiEncrypt = this.getApiEncryptAnnotation(servletRequest);
+        boolean responseFlag = apiEncrypt != null && apiEncrypt.response();
         ServletRequest requestWrapper = null;
         ServletResponse responseWrapper = null;
         EncryptResponseBodyWrapper responseBodyWrapper = null;
@@ -49,9 +49,6 @@
             if (HttpMethod.PUT.matches(servletRequest.getMethod()) || HttpMethod.POST.matches(servletRequest.getMethod())) {
                 // 鏄惁瀛樺湪鍔犲瘑鏍囧ご
                 String headerValue = servletRequest.getHeader(properties.getHeaderFlag());
-                // 鑾峰彇鍔犲瘑娉ㄨВ
-                ApiEncrypt apiEncrypt = this.getApiEncryptAnnotation(servletRequest);
-                responseFlag = apiEncrypt != null && apiEncrypt.response();
                 if (StringUtils.isNotBlank(headerValue)) {
                     // 璇锋眰瑙e瘑
                     requestWrapper = new DecryptRequestBodyWrapper(servletRequest, properties.getPrivateKey(), properties.getHeaderFlag());
@@ -65,13 +62,13 @@
                         return;
                     }
                 }
-                // 鍒ゆ柇鏄惁鍝嶅簲鍔犲瘑
-                if (responseFlag) {
-                    responseBodyWrapper = new EncryptResponseBodyWrapper(servletResponse);
-                    responseWrapper = responseBodyWrapper;
-                }
             }
         }
+        // 鍒ゆ柇鏄惁鍝嶅簲鍔犲瘑
+        if (responseFlag) {
+            responseBodyWrapper = new EncryptResponseBodyWrapper(servletResponse);
+            responseWrapper = responseBodyWrapper;
+        }
 
         chain.doFilter(
             ObjectUtil.defaultIfNull(requestWrapper, request),

--
Gitblit v1.9.3