From 4470052c3b6bdeb18e45987f8aa293d1e93d0552 Mon Sep 17 00:00:00 2001
From: Ludc <2870569285@qq.com>
Date: 星期二, 18 十一月 2025 11:59:12 +0800
Subject: [PATCH] 所有文件上传接口增加文件安全校验逻辑。
---
Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/factories/FactoriesFiles.java | 80 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 80 insertions(+), 0 deletions(-)
diff --git a/Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/factories/FactoriesFiles.java b/Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/factories/FactoriesFiles.java
new file mode 100644
index 0000000..d231ecc
--- /dev/null
+++ b/Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/factories/FactoriesFiles.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: DreamLu 鍗㈡槬姊� (596392912@qq.com)
+ */
+package org.springblade.core.auto.factories;
+
+import org.springblade.core.auto.common.MultiSetMap;
+
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.util.Set;
+import java.util.StringJoiner;
+
+/**
+ * spring boot 鑷姩鍖栭厤缃伐鍏风被
+ *
+ * @author L.cm
+ */
+class FactoriesFiles {
+ private static final Charset UTF_8 = StandardCharsets.UTF_8;
+
+ /**
+ * 鍐欏嚭 spring.factories 鏂囦欢
+ * @param factories factories 淇℃伅
+ * @param output 杈撳嚭娴�
+ * @throws IOException 寮傚父淇℃伅
+ */
+ static void writeFactoriesFile(MultiSetMap<String, String> factories,
+ OutputStream output) throws IOException {
+ BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, UTF_8));
+ Set<String> keySet = factories.keySet();
+ for (String key : keySet) {
+ Set<String> values = factories.get(key);
+ if (values == null || values.isEmpty()) {
+ continue;
+ }
+ writer.write(key);
+ writer.write("=\\\n ");
+ StringJoiner joiner = new StringJoiner(",\\\n ");
+ for (String value : values) {
+ joiner.add(value);
+ }
+ writer.write(joiner.toString());
+ writer.newLine();
+ }
+ writer.flush();
+ output.close();
+ }
+
+ /**
+ * 鍐欏嚭 spring-devtools.properties
+ * @param projectName 椤圭洰鍚�
+ * @param output 杈撳嚭娴�
+ * @throws IOException 寮傚父淇℃伅
+ */
+ static void writeDevToolsFile(String projectName,
+ OutputStream output) throws IOException {
+ BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, UTF_8));
+ String format = "restart.include.%s=/%s[\\\\w-]+\\.jar";
+ writer.write(String.format(format, projectName, projectName));
+ writer.flush();
+ output.close();
+ }
+}
--
Gitblit v1.10.0