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 | 9 | import javax.servlet.ServletResponse; |
| 10 | 10 | import javax.servlet.http.HttpServletRequest; |
| 11 | 11 | |
| 12 | -import com.ruoyi.common.enums.HttpMethod; | |
| 13 | - | |
| 14 | 12 | /** |
| 15 | 13 | * Repeatable 过滤器 |
| 16 | 14 | * |
| ... | ... | @@ -28,16 +26,19 @@ public class RepeatableFilter implements Filter |
| 28 | 26 | public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) |
| 29 | 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 | 36 | chain.doFilter(request, response); |
| 40 | 37 | } |
| 38 | + else | |
| 39 | + { | |
| 40 | + chain.doFilter(requestWrapper, response); | |
| 41 | + } | |
| 41 | 42 | } |
| 42 | 43 | |
| 43 | 44 | @Override | ... | ... |
ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
| ... | ... | @@ -4,12 +4,12 @@ import java.io.BufferedReader; |
| 4 | 4 | import java.io.ByteArrayInputStream; |
| 5 | 5 | import java.io.IOException; |
| 6 | 6 | import java.io.InputStreamReader; |
| 7 | -import java.nio.charset.Charset; | |
| 8 | 7 | import javax.servlet.ReadListener; |
| 9 | 8 | import javax.servlet.ServletInputStream; |
| 9 | +import javax.servlet.ServletResponse; | |
| 10 | 10 | import javax.servlet.http.HttpServletRequest; |
| 11 | 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 | 15 | * 构建可重复读取inputStream的request |
| ... | ... | @@ -20,10 +20,13 @@ public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper |
| 20 | 20 | { |
| 21 | 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 | 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 | 32 | @Override |
| ... | ... | @@ -35,50 +38,35 @@ public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper |
| 35 | 38 | @Override |
| 36 | 39 | public ServletInputStream getInputStream() throws IOException |
| 37 | 40 | { |
| 41 | + | |
| 38 | 42 | final ByteArrayInputStream bais = new ByteArrayInputStream(body); |
| 43 | + | |
| 39 | 44 | return new ServletInputStream() |
| 40 | 45 | { |
| 41 | 46 | |
| 42 | 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 | 53 | @Override |
| 49 | - public boolean isReady() | |
| 54 | + public boolean isFinished() | |
| 50 | 55 | { |
| 51 | 56 | return false; |
| 52 | 57 | } |
| 53 | 58 | |
| 54 | 59 | @Override |
| 55 | - public void setReadListener(ReadListener listener) | |
| 60 | + public boolean isReady() | |
| 56 | 61 | { |
| 57 | - | |
| 62 | + return false; | |
| 58 | 63 | } |
| 59 | 64 | |
| 60 | 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 | 180 | */ |
| 181 | 181 | public static String replaceFirst(String replacementm, String[] searchList) |
| 182 | 182 | { |
| 183 | - String text = StringUtils.EMPTY; | |
| 183 | + String text = replacementm; | |
| 184 | 184 | for (String searchString : searchList) |
| 185 | 185 | { |
| 186 | 186 | if (replacementm.startsWith(searchString)) | ... | ... |