作者 RuoYi

批量替换表前缀调整

@@ -9,8 +9,6 @@ import javax.servlet.ServletRequest; @@ -9,8 +9,6 @@ import javax.servlet.ServletRequest;
9 import javax.servlet.ServletResponse; 9 import javax.servlet.ServletResponse;
10 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletRequest;
11 11
12 -import com.ruoyi.common.enums.HttpMethod;  
13 -  
14 /** 12 /**
15 * Repeatable 过滤器 13 * Repeatable 过滤器
16 * 14 *
@@ -28,16 +26,19 @@ public class RepeatableFilter implements Filter @@ -28,16 +26,19 @@ public class RepeatableFilter implements Filter
28 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 26 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
29 throws IOException, ServletException 27 throws IOException, ServletException
30 { 28 {
31 - HttpServletRequest req = (HttpServletRequest) request;  
32 - if (HttpMethod.PUT.name().equals(req.getMethod()) || HttpMethod.POST.name().equals(req.getMethod())) 29 + ServletRequest requestWrapper = null;
  30 + if (request instanceof HttpServletRequest)
33 { 31 {
34 - RepeatedlyRequestWrapper repeatedlyRequest = new RepeatedlyRequestWrapper((HttpServletRequest) request);  
35 - chain.doFilter(repeatedlyRequest, response); 32 + requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response);
36 } 33 }
37 - else 34 + if (null == requestWrapper)
38 { 35 {
39 chain.doFilter(request, response); 36 chain.doFilter(request, response);
40 } 37 }
  38 + else
  39 + {
  40 + chain.doFilter(requestWrapper, response);
  41 + }
41 } 42 }
42 43
43 @Override 44 @Override
@@ -4,12 +4,12 @@ import java.io.BufferedReader; @@ -4,12 +4,12 @@ import java.io.BufferedReader;
4 import java.io.ByteArrayInputStream; 4 import java.io.ByteArrayInputStream;
5 import java.io.IOException; 5 import java.io.IOException;
6 import java.io.InputStreamReader; 6 import java.io.InputStreamReader;
7 -import java.nio.charset.Charset;  
8 import javax.servlet.ReadListener; 7 import javax.servlet.ReadListener;
9 import javax.servlet.ServletInputStream; 8 import javax.servlet.ServletInputStream;
  9 +import javax.servlet.ServletResponse;
10 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletRequestWrapper; 11 import javax.servlet.http.HttpServletRequestWrapper;
12 -import com.ruoyi.common.utils.StringUtils; 12 +import com.ruoyi.common.utils.http.HttpHelper;
13 13
14 /** 14 /**
15 * 构建可重复读取inputStream的request 15 * 构建可重复读取inputStream的request
@@ -20,10 +20,13 @@ public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper @@ -20,10 +20,13 @@ public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper
20 { 20 {
21 private final byte[] body; 21 private final byte[] body;
22 22
23 - public RepeatedlyRequestWrapper(HttpServletRequest request) throws IOException 23 + public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException
24 { 24 {
25 super(request); 25 super(request);
26 - body = readBytes(request.getReader(), "utf-8"); 26 + request.setCharacterEncoding("UTF-8");
  27 + response.setCharacterEncoding("UTF-8");
  28 +
  29 + body = HttpHelper.getBodyString(request).getBytes("UTF-8");
27 } 30 }
28 31
29 @Override 32 @Override
@@ -35,50 +38,35 @@ public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper @@ -35,50 +38,35 @@ public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper
35 @Override 38 @Override
36 public ServletInputStream getInputStream() throws IOException 39 public ServletInputStream getInputStream() throws IOException
37 { 40 {
  41 +
38 final ByteArrayInputStream bais = new ByteArrayInputStream(body); 42 final ByteArrayInputStream bais = new ByteArrayInputStream(body);
  43 +
39 return new ServletInputStream() 44 return new ServletInputStream()
40 { 45 {
41 46
42 @Override 47 @Override
43 - public boolean isFinished() 48 + public int read() throws IOException
44 { 49 {
45 - return false; 50 + return bais.read();
46 } 51 }
47 52
48 @Override 53 @Override
49 - public boolean isReady() 54 + public boolean isFinished()
50 { 55 {
51 return false; 56 return false;
52 } 57 }
53 58
54 @Override 59 @Override
55 - public void setReadListener(ReadListener listener) 60 + public boolean isReady()
56 { 61 {
57 - 62 + return false;
58 } 63 }
59 64
60 @Override 65 @Override
61 - public int read() throws IOException 66 + public void setReadListener(ReadListener readListener)
62 { 67 {
63 - return bais.read();  
64 - }  
65 - };  
66 - }  
67 68
68 - /**  
69 - * 通过BufferedReader和字符编码集转换成byte数组  
70 - */  
71 - private byte[] readBytes(BufferedReader br, String encoding) throws IOException  
72 - {  
73 - String str = null, retStr = "";  
74 - while ((str = br.readLine()) != null)  
75 - {  
76 - retStr += str;  
77 } 69 }
78 - if (StringUtils.isNotBlank(retStr))  
79 - {  
80 - return retStr.getBytes(Charset.forName(encoding));  
81 - }  
82 - return null; 70 + };
83 } 71 }
84 } 72 }
@@ -180,7 +180,7 @@ public class GenUtils @@ -180,7 +180,7 @@ public class GenUtils
180 */ 180 */
181 public static String replaceFirst(String replacementm, String[] searchList) 181 public static String replaceFirst(String replacementm, String[] searchList)
182 { 182 {
183 - String text = StringUtils.EMPTY; 183 + String text = replacementm;
184 for (String searchString : searchList) 184 for (String searchString : searchList)
185 { 185 {
186 if (replacementm.startsWith(searchString)) 186 if (replacementm.startsWith(searchString))