fix JudgePort Function

1: fix portAllowed judge
2: fix domainAllowed judge
3: fix subdomainAllowed judge
This commit is contained in:
zhumouren
2023-10-07 14:46:27 +08:00
parent 245f4fa32f
commit 8d54567c0f

View File

@@ -115,6 +115,10 @@ func (c *HandleController) JudgePort(content *plugin.NewProxyContent) plugin.Res
break
}
} else {
if str == "" {
portAllowed = true
break
}
allowed, err := strconv.Atoi(str)
if err != nil {
portErr = fmt.Errorf("user [%v] allowed port [%v] is not a number", user, port)
@@ -148,10 +152,14 @@ func (c *HandleController) JudgePort(content *plugin.NewProxyContent) plugin.Res
if proxyType == "http" || proxyType == "https" || proxyType == "tcpmux" {
if portAllowed {
if token, exist := c.Tokens[user]; exist {
for _, userDomain := range userDomains {
if stringContains(userDomain, token.Domains) {
domainAllowed = false
break
if stringContains("", token.Domains) {
domainAllowed = true
} else {
for _, userDomain := range userDomains {
if !stringContains(userDomain, token.Domains) {
domainAllowed = false
break
}
}
}
}
@@ -167,10 +175,14 @@ func (c *HandleController) JudgePort(content *plugin.NewProxyContent) plugin.Res
subdomainAllowed = false
if portAllowed && domainAllowed {
if token, exist := c.Tokens[user]; exist {
for _, subdomain := range token.Subdomains {
if subdomain == userSubdomain {
subdomainAllowed = true
break
if stringContains("", token.Subdomains) {
subdomainAllowed = true
} else {
for _, subdomain := range token.Subdomains {
if subdomain == userSubdomain {
subdomainAllowed = true
break
}
}
}
} else {