From cd5e07e11f61ec762f13d8a9f7d90e06f02358a5 Mon Sep 17 00:00:00 2001 From: JiaJu Zhuang <5152853@qq.com> Date: Sun, 13 Aug 2023 16:49:46 +0800 Subject: [PATCH 1/5] Remove redundant interceptors --- .../server/start/log/MyInterceptor.java | 32 ------------------- 1 file changed, 32 deletions(-) delete mode 100644 chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/log/MyInterceptor.java diff --git a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/log/MyInterceptor.java b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/log/MyInterceptor.java deleted file mode 100644 index 0d864d9d..00000000 --- a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/log/MyInterceptor.java +++ /dev/null @@ -1,32 +0,0 @@ -package ai.chat2db.server.start.log; - -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; -import org.springframework.web.servlet.HandlerInterceptor; -import org.springframework.web.servlet.ModelAndView; - -@Slf4j -@Component -public class MyInterceptor implements HandlerInterceptor { - - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - //// 处理逻辑 - //MyResult result = new MyResult(); - //result.setCode(200); - //result.setMessage("处理成功"); - //request.setAttribute("myResult", result); - return true; - } - - @Override - public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { - //// 取出处理结果并封装成实体对象 - //MyResult result = (MyResult) request.getAttribute("myResult"); - //modelAndView.setView(new MappingJackson2JsonView()); - //modelAndView.addObject(result); - log.info("xx"); - } -} \ No newline at end of file From 79ffd2c1f246ccea9243c8e90a433b55e46d4e57 Mon Sep 17 00:00:00 2001 From: robin <850379744@qq.com> Date: Sun, 13 Aug 2023 17:00:30 +0800 Subject: [PATCH 2/5] mask log --- .../server/tools/common/util/LogUtils.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java b/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java index 14cd284a..605c2844 100644 --- a/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java +++ b/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java @@ -5,6 +5,7 @@ import java.util.regex.Pattern; import cn.hutool.core.lang.UUID; import cn.hutool.core.net.NetUtil; +import org.apache.commons.lang3.StringUtils; import org.zalando.logbook.HttpHeaders; import org.zalando.logbook.HttpRequest; @@ -36,6 +37,24 @@ public class LogUtils { */ private static final Pattern LINE_FEED_PATTERN = Pattern.compile("\r|\n"); + /** + * mask string + * + * @param input + * @return + */ + private static String maskString(String input) { + if (StringUtils.isBlank(input)) { + return input; + } + + StringBuilder maskedString = new StringBuilder(input); + for (int i = 0; i < input.length(); i += 2) { + maskedString.setCharAt(i, '*'); + } + return maskedString.toString(); + } + /** * 去除换行符 * @@ -59,7 +78,7 @@ public class LogUtils { if (Objects.isNull(log)) { return null; } - return EasyStringUtils.limitString(removeCrlf(log.toString()), MAX_LOG_LENGTH); + return EasyStringUtils.limitString(maskString(removeCrlf(log.toString())), MAX_LOG_LENGTH); } /** From b94ce9fd88c798b90150a7f25f2aaeed2bad489c Mon Sep 17 00:00:00 2001 From: robin <850379744@qq.com> Date: Sun, 13 Aug 2023 17:09:32 +0800 Subject: [PATCH 3/5] mask log --- .../main/java/ai/chat2db/server/start/log/EasyLogSink.java | 4 ++-- .../java/ai/chat2db/server/tools/common/util/LogUtils.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/log/EasyLogSink.java b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/log/EasyLogSink.java index 268edb65..f3f9857b 100644 --- a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/log/EasyLogSink.java +++ b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/log/EasyLogSink.java @@ -54,10 +54,10 @@ public class EasyLogSink implements Sink { webLog.setStartTime(LocalDateTime.ofInstant(correlation.getStart(), ZoneId.systemDefault())); webLog.setEndTime(LocalDateTime.ofInstant(correlation.getEnd(), ZoneId.systemDefault())); try { - webLog.setRequest(LogUtils.cutLog(new String(request.getBody(), StandardCharsets.UTF_8))); + webLog.setRequest(LogUtils.maskString(LogUtils.cutLog(new String(request.getBody(), StandardCharsets.UTF_8)))); if (ContentTypeUtils.isContentTypeJSON(response.getContentType()) || ContentTypeUtils.isContentTypeHTML( response.getContentType())) { - webLog.setResponse(LogUtils.cutLog(new String(response.getBody(), StandardCharsets.UTF_8))); + webLog.setResponse(LogUtils.maskString(LogUtils.cutLog(new String(response.getBody(), StandardCharsets.UTF_8)))); } else { webLog.setResponse(response.getContentType() + ":[" + response.getBody().length + "]"); } diff --git a/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java b/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java index 605c2844..432cbb45 100644 --- a/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java +++ b/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java @@ -43,7 +43,7 @@ public class LogUtils { * @param input * @return */ - private static String maskString(String input) { + public static String maskString(String input) { if (StringUtils.isBlank(input)) { return input; } @@ -78,7 +78,7 @@ public class LogUtils { if (Objects.isNull(log)) { return null; } - return EasyStringUtils.limitString(maskString(removeCrlf(log.toString())), MAX_LOG_LENGTH); + return EasyStringUtils.limitString(removeCrlf(log.toString()), MAX_LOG_LENGTH); } /** From ef40737984af7d99658825d3733d05c765ed93d3 Mon Sep 17 00:00:00 2001 From: robin <850379744@qq.com> Date: Sun, 13 Aug 2023 17:11:02 +0800 Subject: [PATCH 4/5] mask log --- .../main/java/ai/chat2db/server/tools/common/util/LogUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java b/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java index 432cbb45..73dbd5c2 100644 --- a/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java +++ b/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/util/LogUtils.java @@ -49,7 +49,7 @@ public class LogUtils { } StringBuilder maskedString = new StringBuilder(input); - for (int i = 0; i < input.length(); i += 2) { + for (int i = 0; i < input.length(); i += 4) { maskedString.setCharAt(i, '*'); } return maskedString.toString(); From d745b3c24f79c5bb7f5f8c61f006c7f49d913b48 Mon Sep 17 00:00:00 2001 From: JiaJu Zhuang <5152853@qq.com> Date: Sun, 13 Aug 2023 17:20:56 +0800 Subject: [PATCH 5/5] - Fix the issue of 'CLOB' not displaying specific content [Issue #440](https://github.com/chat2db/Chat2DB/issues/440) --- CHANGELOG.md | 10 ++++++++++ .../src/main/java/ai/chat2db/spi/util/JdbcUtils.java | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfa94d37..2b0a5e58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +# 2.0.12 + +## 🐞 Bug Fixes + +- Fix the issue of 'CLOB' not displaying specific content [Issue #440](https://github.com/chat2db/Chat2DB/issues/440) + +## 🐞 问题修复 + +- 修复 `CLOB` 不展示具体内容的问题 [Issue #440](https://github.com/chat2db/Chat2DB/issues/440) + # 2.0.11 ## 🐞 Bug Fixes diff --git a/chat2db-server/chat2db-spi/src/main/java/ai/chat2db/spi/util/JdbcUtils.java b/chat2db-server/chat2db-spi/src/main/java/ai/chat2db/spi/util/JdbcUtils.java index e157eb1b..f7d13293 100644 --- a/chat2db-server/chat2db-spi/src/main/java/ai/chat2db/spi/util/JdbcUtils.java +++ b/chat2db-server/chat2db-spi/src/main/java/ai/chat2db/spi/util/JdbcUtils.java @@ -151,7 +151,7 @@ public class JdbcUtils { return "(BLOB " + blob.length() + ")"; } if (obj instanceof Clob clob) { - return "(CLOB " + clob.length() + ")"; + return clob.getSubString(1, Math.toIntExact(clob.length())); } if (obj instanceof Timestamp timestamp) { return Objects.toString(timestamp);