Commit 109c64e7c20e044ee3fa650f0d0599aeb64633e8
1 parent
c0cd030d
批量替换表前缀调整
Showing
3 changed files
with
25 additions
and
36 deletions
ruoyi/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java
| @@ -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 |
ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
| @@ -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(); | 68 | + |
| 64 | } | 69 | } |
| 65 | }; | 70 | }; |
| 66 | } | 71 | } |
| 67 | - | ||
| 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 | - } | ||
| 78 | - if (StringUtils.isNotBlank(retStr)) | ||
| 79 | - { | ||
| 80 | - return retStr.getBytes(Charset.forName(encoding)); | ||
| 81 | - } | ||
| 82 | - return null; | ||
| 83 | - } | ||
| 84 | } | 72 | } |
ruoyi/src/main/java/com/ruoyi/project/tool/gen/util/GenUtils.java
| @@ -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)) |