From 7d4f60e89deb83eec95f9cbe84824bcefcac2929 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期一, 19 七月 2021 18:48:11 +0800
Subject: [PATCH] fix 代码生成 queryType 重复勾选数据库无默认值问题
---
ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java | 212 +++++++++++++++++++++++++++--------------------------
1 files changed, 108 insertions(+), 104 deletions(-)
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java
index 6794394..4d36a92 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java
@@ -1,104 +1,108 @@
-package com.ruoyi.common.filter;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import javax.servlet.ReadListener;
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-import org.apache.commons.io.IOUtils;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.html.EscapeUtil;
-
-/**
- * XSS杩囨护澶勭悊
- *
- * @author ruoyi
- */
-public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper
-{
- /**
- * @param request
- */
- public XssHttpServletRequestWrapper(HttpServletRequest request)
- {
- super(request);
- }
-
- @Override
- public String[] getParameterValues(String name)
- {
- String[] values = super.getParameterValues(name);
- if (values != null)
- {
- int length = values.length;
- String[] escapseValues = new String[length];
- for (int i = 0; i < length; i++)
- {
- // 闃瞲ss鏀诲嚮鍜岃繃婊ゅ墠鍚庣┖鏍�
- escapseValues[i] = EscapeUtil.clean(values[i]).trim();
- }
- return escapseValues;
- }
- return super.getParameterValues(name);
- }
-
- @Override
- public ServletInputStream getInputStream() throws IOException
- {
- // 闈瀓son绫诲瀷锛岀洿鎺ヨ繑鍥�
- if (!isJsonRequest())
- {
- return super.getInputStream();
- }
-
- // 涓虹┖锛岀洿鎺ヨ繑鍥�
- String json = IOUtils.toString(super.getInputStream(), "utf-8");
- if (StringUtils.isEmpty(json))
- {
- return super.getInputStream();
- }
-
- // xss杩囨护
- json = EscapeUtil.clean(json).trim();
- final ByteArrayInputStream bis = new ByteArrayInputStream(json.getBytes("utf-8"));
- return new ServletInputStream()
- {
- @Override
- public boolean isFinished()
- {
- return true;
- }
-
- @Override
- public boolean isReady()
- {
- return true;
- }
-
- @Override
- public void setReadListener(ReadListener readListener)
- {
- }
-
- @Override
- public int read() throws IOException
- {
- return bis.read();
- }
- };
- }
-
- /**
- * 鏄惁鏄疛son璇锋眰
- *
- * @param request
- */
- public boolean isJsonRequest()
- {
- String header = super.getHeader(HttpHeaders.CONTENT_TYPE);
- return MediaType.APPLICATION_JSON_VALUE.equalsIgnoreCase(header);
- }
-}
\ No newline at end of file
+package com.ruoyi.common.filter;
+
+import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.http.HtmlUtil;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+
+import javax.servlet.ReadListener;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * XSS杩囨护澶勭悊
+ *
+ * @author ruoyi
+ */
+public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper
+{
+ /**
+ * @param request
+ */
+ public XssHttpServletRequestWrapper(HttpServletRequest request)
+ {
+ super(request);
+ }
+
+ @Override
+ public String[] getParameterValues(String name)
+ {
+ String[] values = super.getParameterValues(name);
+ if (values != null)
+ {
+ int length = values.length;
+ String[] escapseValues = new String[length];
+ for (int i = 0; i < length; i++)
+ {
+ // 闃瞲ss鏀诲嚮鍜岃繃婊ゅ墠鍚庣┖鏍�
+ escapseValues[i] = HtmlUtil.cleanHtmlTag(values[i]).trim();
+ }
+ return escapseValues;
+ }
+ return super.getParameterValues(name);
+ }
+
+ @Override
+ public ServletInputStream getInputStream() throws IOException
+ {
+ // 闈瀓son绫诲瀷锛岀洿鎺ヨ繑鍥�
+ if (!isJsonRequest())
+ {
+ return super.getInputStream();
+ }
+
+ // 涓虹┖锛岀洿鎺ヨ繑鍥�
+ String json = IoUtil.read(super.getInputStream(), StandardCharsets.UTF_8);
+ if (Validator.isEmpty(json))
+ {
+ return super.getInputStream();
+ }
+
+ // xss杩囨护
+ json = HtmlUtil.cleanHtmlTag(json).trim();
+
+ final ByteArrayInputStream bis = IoUtil.toStream(json, StandardCharsets.UTF_8);
+ return new ServletInputStream()
+ {
+ @Override
+ public boolean isFinished()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isReady()
+ {
+ return true;
+ }
+
+ @Override
+ public void setReadListener(ReadListener readListener)
+ {
+ }
+
+ @Override
+ public int read() throws IOException
+ {
+ return bis.read();
+ }
+ };
+ }
+
+ /**
+ * 鏄惁鏄疛son璇锋眰
+ *
+ * @param request
+ */
+ public boolean isJsonRequest()
+ {
+ String header = super.getHeader(HttpHeaders.CONTENT_TYPE);
+ return StrUtil.startWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE);
+ }
+}
--
Gitblit v1.9.3