You've already forked FrameTour-BE
feat(puzzle): 实现智能自动填充引擎和安全增强
- 新增拼图元素自动填充引擎 PuzzleElementFillEngine - 支持基于规则的条件匹配和数据源解析 - 实现机位数量、机位ID等多维度条件策略 - 添加 DEVICE_IMAGE、USER_AVATAR 等数据源类型支持 - 增加景区隔离校验确保模板使用安全性 - 强化图片下载安全校验,防范 SSRF 攻击 - 支持本地文件路径解析和公网 URL 安全检查 - 完善静态值数据源策略支持 localPath 配置 - 优化生成流程中 faceId 和 scenicId 的校验逻辑 - 补充相关单元测试覆盖核心功能点
This commit is contained in:
@@ -2,6 +2,7 @@ package com.ycwl.basic.puzzle.util;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ycwl.basic.puzzle.dto.ElementCreateRequest;
|
||||
import com.ycwl.basic.puzzle.element.enums.ElementType;
|
||||
import com.ycwl.basic.puzzle.entity.PuzzleElementEntity;
|
||||
import com.ycwl.basic.utils.JacksonUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -108,13 +109,12 @@ public class ElementConfigHelper {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 当前支持的类型
|
||||
return "TEXT".equalsIgnoreCase(elementType) ||
|
||||
"IMAGE".equalsIgnoreCase(elementType) ||
|
||||
"QRCODE".equalsIgnoreCase(elementType) ||
|
||||
"GRADIENT".equalsIgnoreCase(elementType) ||
|
||||
"SHAPE".equalsIgnoreCase(elementType) ||
|
||||
"DYNAMIC_IMAGE".equalsIgnoreCase(elementType);
|
||||
try {
|
||||
ElementType type = ElementType.fromCode(elementType);
|
||||
return type.isImplemented();
|
||||
} catch (IllegalArgumentException ex) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user