Selaa lähdekoodia

增加分组名、接口名、函数名校验

mxd 4 vuotta sitten
vanhempi
sitoutus
4b06ba3523

+ 4 - 0
src/main/java/org/ssssssss/magicapi/controller/MagicAPIController.java

@@ -10,6 +10,7 @@ import org.ssssssss.magicapi.interceptor.RequestInterceptor;
 import org.ssssssss.magicapi.model.ApiInfo;
 import org.ssssssss.magicapi.model.JsonBean;
 import org.ssssssss.magicapi.provider.ApiServiceProvider;
+import org.ssssssss.magicapi.utils.IoUtils;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
@@ -165,6 +166,9 @@ public class MagicAPIController extends MagicController {
 			if (StringUtils.isBlank(info.getName())) {
 				return new JsonBean<>(0, "接口名称不能为空");
 			}
+			if (!IoUtils.validateFileName(info.getName())) {
+				return new JsonBean<>(0, "接口名称不能包含特殊字符,只允许中文、数字、字母以及_组合");
+			}
 			if (StringUtils.isBlank(info.getScript())) {
 				return new JsonBean<>(0, "脚本内容不能为空");
 			}

+ 4 - 0
src/main/java/org/ssssssss/magicapi/controller/MagicFunctionController.java

@@ -10,6 +10,7 @@ import org.ssssssss.magicapi.interceptor.RequestInterceptor;
 import org.ssssssss.magicapi.model.FunctionInfo;
 import org.ssssssss.magicapi.model.JsonBean;
 import org.ssssssss.magicapi.provider.FunctionServiceProvider;
+import org.ssssssss.magicapi.utils.IoUtils;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
@@ -99,6 +100,9 @@ public class MagicFunctionController extends MagicController {
 		if (StringUtils.isBlank(functionInfo.getName())) {
 			return new JsonBean<>(0, "函数名称不能为空");
 		}
+		if (!IoUtils.validateFileName(functionInfo.getName())) {
+			return new JsonBean<>(0, "函数名称不能包含特殊字符,只允许中文、数字、字母以及_组合");
+		}
 		if (StringUtils.isBlank(functionInfo.getPath())) {
 			return new JsonBean<>(0, "函数路径不能为空");
 		}

+ 7 - 0
src/main/java/org/ssssssss/magicapi/controller/MagicGroupController.java

@@ -11,6 +11,7 @@ import org.ssssssss.magicapi.model.Group;
 import org.ssssssss.magicapi.model.JsonBean;
 import org.ssssssss.magicapi.model.TreeNode;
 import org.ssssssss.magicapi.provider.GroupServiceProvider;
+import org.ssssssss.magicapi.utils.IoUtils;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
@@ -96,6 +97,9 @@ public class MagicGroupController extends MagicController {
 		if (StringUtils.isBlank(group.getName())) {
 			return new JsonBean<>(0, "分组名称不能为空");
 		}
+		if (!IoUtils.validateFileName(group.getName())) {
+			return new JsonBean<>(0, "分组名称不能包含特殊字符,只允许中文、数字、字母以及_组合");
+		}
 		if (StringUtils.isBlank(group.getType())) {
 			return new JsonBean<>(0, "分组类型不能为空");
 		}
@@ -156,6 +160,9 @@ public class MagicGroupController extends MagicController {
 		if (StringUtils.isBlank(group.getName())) {
 			return new JsonBean<>(0, "分组名称不能为空");
 		}
+		if (!IoUtils.validateFileName(group.getName())) {
+			return new JsonBean<>(0, "分组名称不能包含特殊字符,只允许中文、数字、字母以及_组合");
+		}
 		if (StringUtils.isBlank(group.getType())) {
 			return new JsonBean<>(0, "分组类型不能为空");
 		}

+ 7 - 0
src/main/java/org/ssssssss/magicapi/utils/IoUtils.java

@@ -8,11 +8,18 @@ import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Pattern;
 
 public class IoUtils {
 
 	private static Logger logger = LoggerFactory.getLogger(IoUtils.class);
 
+	private static Pattern FILE_NAME_PATTERN = Pattern.compile("^[\\u4e00-\\u9fa5_a-zA-Z0-9]+$");
+
+	public static boolean validateFileName(String name){
+		return FILE_NAME_PATTERN.matcher(name).matches();
+	}
+
 	public static List<File> files(File file, String suffix) {
 		List<File> list = new ArrayList<>();
 		if (file.isDirectory()) {