From 2456e45fc5b03a621d2e2660a9bafdf39d3b5da4 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 26 Sep 2026 21:38:48 +0800 Subject: [PATCH] =?UTF-8?q?fix(oa):=20=E8=A1=A5=E5=85=85=E9=82=AE=E7=AE=B1?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E4=B8=BB=E6=9C=BA=E5=90=8D=E4=B8=8E?= =?UTF-8?q?=20IP=20=E5=9C=B0=E5=9D=80=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联:https://t.zsxq.com/y1ggF --- .../vo/provider/OaMailProviderSaveReqVO.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/yudao-module-oa/src/main/java/cn/iocoder/yudao/module/oa/controller/admin/mail/vo/provider/OaMailProviderSaveReqVO.java b/yudao-module-oa/src/main/java/cn/iocoder/yudao/module/oa/controller/admin/mail/vo/provider/OaMailProviderSaveReqVO.java index 142d3f35e2..bac7485cb7 100644 --- a/yudao-module-oa/src/main/java/cn/iocoder/yudao/module/oa/controller/admin/mail/vo/provider/OaMailProviderSaveReqVO.java +++ b/yudao-module-oa/src/main/java/cn/iocoder/yudao/module/oa/controller/admin/mail/vo/provider/OaMailProviderSaveReqVO.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.oa.controller.admin.mail.vo.provider; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.validation.InEnum; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -45,6 +47,22 @@ public class OaMailProviderSaveReqVO { @Size(max = 253, message = "服务器域名长度不能超过 253 个字符") private String host; + /** 校验服务器主机名或 IP,不包含协议、路径和端口 */ + @AssertTrue(message = "请输入有效的服务器域名或 IP 地址") + @JsonIgnore + public boolean isHostValid() { + if (StrUtil.isEmpty(host)) { + return true; // 空值由必填校验处理 + } + if (host.contains(":")) { + return Validator.isIpv6(host); + } + if (host.matches("\\d+(?:\\.\\d+){3}")) { + return host.matches("(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)){3}"); + } + return host.matches("(?i)[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?(?:\\.[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?)*\\.?"); + } + @Schema(description = "服务器端口", requiredMode = Schema.RequiredMode.REQUIRED, example = "993") @NotNull(message = "服务器端口不能为空") @Min(value = 1, message = "服务器端口不能小于 1")