fix 文件编辑后缀识别支持配置文件名或者正则表达式

This commit is contained in:
bwcx_jzy 2023-04-13 15:04:45 +08:00
parent 6714aa7527
commit 25c9f7c0d9
No known key found for this signature in database
GPG Key ID: E187D6E9DDDE8C53
2 changed files with 17 additions and 11 deletions

View File

@ -7,6 +7,7 @@
1. 【server】优化 构建 SSH 发布命令支持 `SSH_RELEASE_PATH` 环境变量(感谢@定格) 1. 【server】优化 构建 SSH 发布命令支持 `SSH_RELEASE_PATH` 环境变量(感谢@定格)
2. 【server】修复 全屏终端无法打开文件管理(感谢@Pluto 2. 【server】修复 全屏终端无法打开文件管理(感谢@Pluto
3. 【server】优化 自动探测服务端登录验证码是否可用 3. 【server】优化 自动探测服务端登录验证码是否可用
4. 【all】优化 文件编辑后缀识别支持配置文件名或者正则表达式(感谢@MichelleChung
------ ------

View File

@ -27,6 +27,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.text.StrSplitter; import cn.hutool.core.text.StrSplitter;
import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -108,16 +109,16 @@ public class AgentWhitelist extends BaseJsonModel {
return null; return null;
} }
return list.stream() return list.stream()
.map(s -> { .map(s -> {
String val = String.format("/%s/", s); String val = String.format("/%s/", s);
val = FileUtil.normalize(val); val = FileUtil.normalize(val);
FileUtils.checkSlip(val); FileUtils.checkSlip(val);
// 判断是否保护jpom 路径 // 判断是否保护jpom 路径
Assert.state(!StrUtil.startWith(ExtConfigBean.getPath(), val), errorMsg); Assert.state(!StrUtil.startWith(ExtConfigBean.getPath(), val), errorMsg);
return val; return val;
}) })
.distinct() .distinct()
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
/** /**
@ -240,7 +241,11 @@ public class AgentWhitelist extends BaseJsonModel {
} }
Set<Map.Entry<String, Charset>> entries = map.entrySet(); Set<Map.Entry<String, Charset>> entries = map.entrySet();
for (Map.Entry<String, Charset> entry : entries) { for (Map.Entry<String, Charset> entry : entries) {
if (StrUtil.endWithIgnoreCase(filename, StrUtil.DOT + entry.getKey())) { if (StrUtil.endWithAnyIgnoreCase(filename, entry.getKey(), StrUtil.DOT + entry.getKey())) {
return entry.getValue();
}
if (ReUtil.isMatch(entry.getKey(), filename)) {
// 满足正则条件
return entry.getValue(); return entry.getValue();
} }
} }