From 109c64e7c20e044ee3fa650f0d0599aeb64633e8 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期五, 13 三月 2020 22:14:58 +0800
Subject: [PATCH] 批量替换表前缀调整

---
 ruoyi/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java         |   15 ++++---
 ruoyi/src/main/java/com/ruoyi/project/tool/gen/util/GenUtils.java         |    2 
 ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java |   44 ++++++++--------------
 3 files changed, 25 insertions(+), 36 deletions(-)

diff --git a/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java b/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java
index c334814..a1125e3 100644
--- a/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java
+++ b/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java
@@ -9,8 +9,6 @@
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 
-import com.ruoyi.common.enums.HttpMethod;
-
 /**
  * Repeatable 过滤器
  * 
@@ -28,15 +26,18 @@
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
             throws IOException, ServletException
     {
-        HttpServletRequest req = (HttpServletRequest) request;
-        if (HttpMethod.PUT.name().equals(req.getMethod()) || HttpMethod.POST.name().equals(req.getMethod()))
+        ServletRequest requestWrapper = null;
+        if (request instanceof HttpServletRequest)
         {
-            RepeatedlyRequestWrapper repeatedlyRequest = new RepeatedlyRequestWrapper((HttpServletRequest) request);
-            chain.doFilter(repeatedlyRequest, response);
+            requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response);
+        }
+        if (null == requestWrapper)
+        {
+            chain.doFilter(request, response);
         }
         else
         {
-            chain.doFilter(request, response);
+            chain.doFilter(requestWrapper, response);
         }
     }
 
diff --git a/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java b/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
index f059d37..bd7097f 100644
--- a/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
+++ b/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
@@ -4,12 +4,12 @@
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
-import java.nio.charset.Charset;
 import javax.servlet.ReadListener;
 import javax.servlet.ServletInputStream;
+import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.http.HttpHelper;
 
 /**
  * 构建可重复读取inputStream的request
@@ -20,10 +20,13 @@
 {
     private final byte[] body;
 
-    public RepeatedlyRequestWrapper(HttpServletRequest request) throws IOException
+    public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException
     {
         super(request);
-        body = readBytes(request.getReader(), "utf-8");
+        request.setCharacterEncoding("UTF-8");
+        response.setCharacterEncoding("UTF-8");
+
+        body = HttpHelper.getBodyString(request).getBytes("UTF-8");
     }
 
     @Override
@@ -35,9 +38,17 @@
     @Override
     public ServletInputStream getInputStream() throws IOException
     {
+
         final ByteArrayInputStream bais = new ByteArrayInputStream(body);
+
         return new ServletInputStream()
         {
+
+            @Override
+            public int read() throws IOException
+            {
+                return bais.read();
+            }
 
             @Override
             public boolean isFinished()
@@ -52,33 +63,10 @@
             }
 
             @Override
-            public void setReadListener(ReadListener listener)
+            public void setReadListener(ReadListener readListener)
             {
 
-            }
-
-            @Override
-            public int read() throws IOException
-            {
-                return bais.read();
             }
         };
-    }
-
-    /**
-     * 通过BufferedReader和字符编码集转换成byte数组
-     */
-    private byte[] readBytes(BufferedReader br, String encoding) throws IOException
-    {
-        String str = null, retStr = "";
-        while ((str = br.readLine()) != null)
-        {
-            retStr += str;
-        }
-        if (StringUtils.isNotBlank(retStr))
-        {
-            return retStr.getBytes(Charset.forName(encoding));
-        }
-        return null;
     }
 }
diff --git a/ruoyi/src/main/java/com/ruoyi/project/tool/gen/util/GenUtils.java b/ruoyi/src/main/java/com/ruoyi/project/tool/gen/util/GenUtils.java
index 48bbe0b..047cd2d 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/tool/gen/util/GenUtils.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/tool/gen/util/GenUtils.java
@@ -180,7 +180,7 @@
      */
     public static String replaceFirst(String replacementm, String[] searchList)
     {
-        String text = StringUtils.EMPTY;
+        String text = replacementm;
         for (String searchString : searchList)
         {
             if (replacementm.startsWith(searchString))

--
Gitblit v1.9.2