浏览代码

更新域名验证逻辑

在配置文件中增强了域名有效性检查,现在同时验证普通域名和泛域名的有效性,并在`utils`包中新增了`IsValidWildcardDomain`函数来支持泛域名的验证。
SongZihuan 3 月之前
父节点
当前提交
750b4232aa
共有 2 个文件被更改,包括 9 次插入1 次删除
  1. 1 1
      src/config/domainconfg.go
  2. 8 0
      src/utils/string.go

+ 1 - 1
src/config/domainconfg.go

@@ -43,7 +43,7 @@ func (d *DomainConfig) Check() ConfigError {
 	for _, domain := range d.Domains {
 		if domain.Domain == "" {
 			return NewConfigError("domain is empty")
-		} else if utils.IsValidDomain(domain.Domain) {
+		} else if !utils.IsValidDomain(domain.Domain) && !utils.IsValidWildcardDomain(domain.Domain) {
 			return NewConfigError("domain is not valid")
 		}
 	}

+ 8 - 0
src/utils/string.go

@@ -119,6 +119,14 @@ func IsValidDomain(domain string) bool {
 	return matched
 }
 
+func IsValidWildcardDomain(domain string) bool {
+	if !strings.HasPrefix(domain, "*.") {
+		return false
+	}
+
+	return IsValidDomain(domain[2:])
+}
+
 func StringToOnlyPrint(str string) string {
 	runeLst := []rune(str)
 	res := make([]rune, 0, len(runeLst))