5 Commits

Author SHA1 Message Date
杨黄林
b75a641568 Update README_zh.md 2023-10-23 03:10:07 -05:00
杨黄林
6a7635a01a Update README.md 2023-10-23 03:09:44 -05:00
杨黄林
cbd9611c3d Merge pull request #7 from mourenZhu/main
fix: JudgePort Function
2023-10-08 09:28:31 +08:00
zhumouren
8d54567c0f fix JudgePort Function
1: fix portAllowed judge
2: fix domainAllowed judge
3: fix subdomainAllowed judge
2023-10-07 14:46:27 +08:00
zhumouren
245f4fa32f fix proxyType judge in JudgePort Function 2023-10-07 11:58:39 +08:00
3 changed files with 23 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
# frps-panel # frps-panel(Support FRP 0.51.3)
[README](README.md) | [中文文档](README_zh.md) [README](README.md) | [中文文档](README_zh.md)

View File

@@ -1,4 +1,4 @@
# frps-panel # frps-panel(支持 FRP 0.51.3)
[README](README.md) | [中文文档](README_zh.md) [README](README.md) | [中文文档](README_zh.md)

View File

@@ -77,7 +77,7 @@ func (c *HandleController) JudgePort(content *plugin.NewProxyContent) plugin.Res
"tcp", "tcpmux", "udp", "http", "https", "tcp", "tcpmux", "udp", "http", "https",
} }
proxyType := content.ProxyType proxyType := content.ProxyType
if stringContains(proxyType, supportProxyTypes) { if !stringContains(proxyType, supportProxyTypes) {
log.Printf("proxy type [%v] not support, plugin do nothing", proxyType) log.Printf("proxy type [%v] not support, plugin do nothing", proxyType)
res.Unchange = true res.Unchange = true
return res return res
@@ -115,6 +115,10 @@ func (c *HandleController) JudgePort(content *plugin.NewProxyContent) plugin.Res
break break
} }
} else { } else {
if str == "" {
portAllowed = true
break
}
allowed, err := strconv.Atoi(str) allowed, err := strconv.Atoi(str)
if err != nil { if err != nil {
portErr = fmt.Errorf("user [%v] allowed port [%v] is not a number", user, port) portErr = fmt.Errorf("user [%v] allowed port [%v] is not a number", user, port)
@@ -148,13 +152,17 @@ func (c *HandleController) JudgePort(content *plugin.NewProxyContent) plugin.Res
if proxyType == "http" || proxyType == "https" || proxyType == "tcpmux" { if proxyType == "http" || proxyType == "https" || proxyType == "tcpmux" {
if portAllowed { if portAllowed {
if token, exist := c.Tokens[user]; exist { if token, exist := c.Tokens[user]; exist {
if stringContains("", token.Domains) {
domainAllowed = true
} else {
for _, userDomain := range userDomains { for _, userDomain := range userDomains {
if stringContains(userDomain, token.Domains) { if !stringContains(userDomain, token.Domains) {
domainAllowed = false domainAllowed = false
break break
} }
} }
} }
}
if !domainAllowed { if !domainAllowed {
portErr = fmt.Errorf("user [%v] domain [%v] is not allowed", user, strings.Join(userDomains, ",")) portErr = fmt.Errorf("user [%v] domain [%v] is not allowed", user, strings.Join(userDomains, ","))
reject = true reject = true
@@ -167,12 +175,16 @@ func (c *HandleController) JudgePort(content *plugin.NewProxyContent) plugin.Res
subdomainAllowed = false subdomainAllowed = false
if portAllowed && domainAllowed { if portAllowed && domainAllowed {
if token, exist := c.Tokens[user]; exist { if token, exist := c.Tokens[user]; exist {
if stringContains("", token.Subdomains) {
subdomainAllowed = true
} else {
for _, subdomain := range token.Subdomains { for _, subdomain := range token.Subdomains {
if subdomain == userSubdomain { if subdomain == userSubdomain {
subdomainAllowed = true subdomainAllowed = true
break break
} }
} }
}
} else { } else {
subdomainAllowed = true subdomainAllowed = true
} }