diff --git a/core/init/router/proxy.go b/core/init/router/proxy.go index c56da03fc..893e4d760 100644 --- a/core/init/router/proxy.go +++ b/core/init/router/proxy.go @@ -2,17 +2,19 @@ package router import ( "context" + "net" + "net/http" + "net/http/httputil" + "net/url" + "os" + "strconv" + "strings" + "github.com/1Panel-dev/1Panel/core/app/repo" "github.com/1Panel-dev/1Panel/core/cmd/server/res" "github.com/1Panel-dev/1Panel/core/constant" "github.com/1Panel-dev/1Panel/core/global" "github.com/1Panel-dev/1Panel/core/utils/security" - "net" - "net/http" - "net/http/httputil" - "os" - "strconv" - "strings" "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/utils/xpack" @@ -30,12 +32,17 @@ func Proxy() gin.HandlerFunc { c.Next() return } - var currentNode string + var nodeItem string queryNode := c.Query("operateNode") if queryNode != "" && queryNode != "undefined" { - currentNode = queryNode + nodeItem = queryNode } else { - currentNode = c.Request.Header.Get("CurrentNode") + nodeItem = c.Request.Header.Get("CurrentNode") + } + currentNode, err := url.QueryUnescape(nodeItem) + if err != nil { + helper.ErrorWithDetail(c, http.StatusBadRequest, "ErrProxy", err) + return } apiReq := c.GetBool("API_AUTH") diff --git a/frontend/src/api/index.ts b/frontend/src/api/index.ts index fdadc054b..d9f09bcfe 100644 --- a/frontend/src/api/index.ts +++ b/frontend/src/api/index.ts @@ -28,7 +28,9 @@ class RequestHttp { ...config.headers, }; if (config.headers.CurrentNode == undefined) { - config.headers.CurrentNode = globalStore.currentNode; + config.headers.CurrentNode = encodeURIComponent(globalStore.currentNode); + } else { + config.headers.CurrentNode = encodeURIComponent(String(config.headers.CurrentNode)); } if (config.url === '/core/auth/login' || config.url === '/core/auth/mfalogin') { let entrance = Base64.encode(globalStore.entrance); diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 8764eac92..ad98b9e9e 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -3323,7 +3323,7 @@ const message = { addNode: 'Add Node', connInfo: 'Connection Information', nodeInfo: 'Node Information', - syncInfo: 'Data synchronization', + syncInfo: 'Sync', syncHelper: 'When master node data changes, it synchronizes to this child node in real-time', syncBackupAccount: 'Backup account settings', syncProxy: 'System proxy settings',