Jelajahi Sumber

更新域名验证逻辑

在配置文件中增强了域名有效性检查,现在同时验证普通域名和泛域名的有效性,并在`utils`包中新增了`IsValidWildcardDomain`函数来支持泛域名的验证。
SongZihuan 3 bulan lalu
induk
melakukan
750b4232aa
2 mengubah file dengan 9 tambahan dan 1 penghapusan
  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))