From 245f4fa32f8309d790093ce50a4d739ee915394b Mon Sep 17 00:00:00 2001 From: zhumouren Date: Sat, 7 Oct 2023 11:58:39 +0800 Subject: [PATCH 1/2] fix proxyType judge in JudgePort Function --- pkg/server/controller/handler.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/server/controller/handler.go b/pkg/server/controller/handler.go index 4726df2..72fcefe 100644 --- a/pkg/server/controller/handler.go +++ b/pkg/server/controller/handler.go @@ -77,7 +77,7 @@ func (c *HandleController) JudgePort(content *plugin.NewProxyContent) plugin.Res "tcp", "tcpmux", "udp", "http", "https", } proxyType := content.ProxyType - if stringContains(proxyType, supportProxyTypes) { + if !stringContains(proxyType, supportProxyTypes) { log.Printf("proxy type [%v] not support, plugin do nothing", proxyType) res.Unchange = true return res From 8d54567c0f2eeac7dbfc5e2485cf075a0f9bfc44 Mon Sep 17 00:00:00 2001 From: zhumouren Date: Sat, 7 Oct 2023 14:46:27 +0800 Subject: [PATCH 2/2] fix JudgePort Function 1: fix portAllowed judge 2: fix domainAllowed judge 3: fix subdomainAllowed judge --- pkg/server/controller/handler.go | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/pkg/server/controller/handler.go b/pkg/server/controller/handler.go index 72fcefe..a4a49ec 100644 --- a/pkg/server/controller/handler.go +++ b/pkg/server/controller/handler.go @@ -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 {