mirror of
https://github.com/yhl452493373/frps-panel.git
synced 2026-04-04 14:27:00 +08:00
Compare commits
9 Commits
1.7.1
...
b75a641568
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b75a641568 | ||
|
|
6a7635a01a | ||
|
|
cbd9611c3d | ||
|
|
8d54567c0f | ||
|
|
245f4fa32f | ||
| 4a714dcd0e | |||
| 43d3ef275e | |||
| d581a65002 | |||
| f6d2362f48 |
@@ -1,4 +1,4 @@
|
||||
# frps-panel
|
||||
# frps-panel(Support FRP 0.51.3)
|
||||
|
||||
[README](README.md) | [中文文档](README_zh.md)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# frps-panel
|
||||
# frps-panel(支持 FRP 0.51.3)
|
||||
|
||||
[README](README.md) | [中文文档](README_zh.md)
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
const version = "1.7.1"
|
||||
const version = "1.7.2"
|
||||
|
||||
var (
|
||||
showVersion bool
|
||||
@@ -87,7 +87,7 @@ func parseConfigFile(configFile, tokensFile string) (controller.HandleController
|
||||
}
|
||||
}
|
||||
|
||||
common.Common.DashboardTls = strings.HasPrefix("https://", strings.ToLower(common.Common.DashboardAddr))
|
||||
common.Common.DashboardTls = strings.HasPrefix(strings.ToLower(common.Common.DashboardAddr), "https://")
|
||||
|
||||
tls := server.TLS{
|
||||
Enable: common.Common.TlsMode,
|
||||
|
||||
2
go.mod
2
go.mod
@@ -8,7 +8,6 @@ require (
|
||||
github.com/gin-contrib/i18n v1.0.0
|
||||
github.com/gin-contrib/sessions v0.0.5
|
||||
github.com/gin-gonic/gin v1.9.1
|
||||
github.com/pelletier/go-toml/v2 v2.0.9
|
||||
github.com/spf13/cobra v0.0.3
|
||||
golang.org/x/text v0.11.0
|
||||
)
|
||||
@@ -36,6 +35,7 @@ require (
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/nicksnyder/go-i18n/v2 v2.2.1 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.0.9 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||
github.com/ugorji/go/codec v1.2.11 // indirect
|
||||
|
||||
@@ -556,6 +556,9 @@ func (c *HandleController) MakeProxyFunc() func(context *gin.Context) {
|
||||
res := ProxyResponse{}
|
||||
host := c.CommonInfo.DashboardAddr
|
||||
port := c.CommonInfo.DashboardPort
|
||||
|
||||
host, _ = strings.CutPrefix(host, protocol)
|
||||
|
||||
requestUrl := protocol + host + ":" + strconv.Itoa(port) + context.Param("serverApi")
|
||||
request, _ := http.NewRequest("GET", requestUrl, nil)
|
||||
username := c.CommonInfo.DashboardUser
|
||||
|
||||
@@ -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
|
||||
@@ -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,13 +152,17 @@ 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 {
|
||||
if stringContains("", token.Domains) {
|
||||
domainAllowed = true
|
||||
} else {
|
||||
for _, userDomain := range userDomains {
|
||||
if stringContains(userDomain, token.Domains) {
|
||||
if !stringContains(userDomain, token.Domains) {
|
||||
domainAllowed = false
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if !domainAllowed {
|
||||
portErr = fmt.Errorf("user [%v] domain [%v] is not allowed", user, strings.Join(userDomains, ","))
|
||||
reject = true
|
||||
@@ -167,12 +175,16 @@ func (c *HandleController) JudgePort(content *plugin.NewProxyContent) plugin.Res
|
||||
subdomainAllowed = false
|
||||
if portAllowed && domainAllowed {
|
||||
if token, exist := c.Tokens[user]; exist {
|
||||
if stringContains("", token.Subdomains) {
|
||||
subdomainAllowed = true
|
||||
} else {
|
||||
for _, subdomain := range token.Subdomains {
|
||||
if subdomain == userSubdomain {
|
||||
subdomainAllowed = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
subdomainAllowed = true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user