From 572df690f72ed4a077d934823f261dec39b3cc7d Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期二, 08 九月 2026 17:11:34 +0800
Subject: [PATCH] feat&bug:文档内容修改
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ExcelUtil.java | 21 ++++++++++++++++++++-
1 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ExcelUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ExcelUtil.java
index fd44c75..22e26b5 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ExcelUtil.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ExcelUtil.java
@@ -32,7 +32,7 @@
for (int i = 0; i < values.length; i++) {
row = sheet.createRow(i + 1);
for (int j = 0; j < values[i].length; j++) {
- row.createCell(j).setCellValue(values[i][j]);
+ row.createCell(j).setCellValue(maskSensitiveValue(j < title.length ? title[j] : null, values[i][j]));
}
}
@@ -40,6 +40,25 @@
return wb;
}
+ /** Export files are an external disclosure channel and always remain masked. */
+ private static String maskSensitiveValue(String columnName, String value) {
+ if (value == null) return null;
+ String column = columnName == null ? "" : columnName.toLowerCase();
+ if (column.contains("身份证") || column.contains("idcard") || column.contains("identity")) {
+ return value.length() <= 10 ? stars(value.length()) : value.substring(0, 6) + stars(value.length() - 10) + value.substring(value.length() - 4);
+ }
+ if (column.contains("电话") || column.contains("手机") || column.contains("phone") || column.contains("mobile")) {
+ return value.length() <= 7 ? stars(value.length()) : value.substring(0, 3) + "****" + value.substring(7);
+ }
+ return value;
+ }
+
+ private static String stars(int size) {
+ StringBuilder value = new StringBuilder();
+ for (int i = 0; i < size; i++) value.append('*');
+ return value.toString();
+ }
+
public static void setResponseHeader(HttpServletResponse response, String fileName) {
try {
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName));
--
Gitblit v1.7.1