From 2ddc4d62a2cf40a127b71bf405bd6a4ec1fd7460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Wed, 15 Jun 2022 19:40:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=BA=90=E7=AB=99=E6=97=B6?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E7=AB=AF=E5=8F=A3=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/default/servers/addOriginPopup.go | 28 ++++++++++++++++--- .../server/settings/origins/addPopup.go | 25 ++++++++++++++--- .../@default/servers/addServerNamePopup.html | 4 +-- 3 files changed, 47 insertions(+), 10 deletions(-) diff --git a/internal/web/actions/default/servers/addOriginPopup.go b/internal/web/actions/default/servers/addOriginPopup.go index ac45a06f..c403da45 100644 --- a/internal/web/actions/default/servers/addOriginPopup.go +++ b/internal/web/actions/default/servers/addOriginPopup.go @@ -3,9 +3,11 @@ package servers import ( "github.com/TeaOSLab/EdgeAdmin/internal/oplogs" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/configutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/iwind/TeaGo/actions" + "github.com/iwind/TeaGo/types" "net/url" "regexp" "strings" @@ -37,7 +39,7 @@ func (this *AddOriginPopupAction) RunPost(params struct { Field("addr", params.Addr). Require("请输入源站地址") - addr := params.Addr + var addr = params.Addr // 是否是完整的地址 if (params.Protocol == "http" || params.Protocol == "https") && regexp.MustCompile(`^(http|https)://`).MatchString(addr) { @@ -59,8 +61,26 @@ func (this *AddOriginPopupAction) RunPost(params struct { } portIndex = strings.LastIndex(addr, ":") } - host := addr[:portIndex] - port := addr[portIndex+1:] + var host = addr[:portIndex] + var port = addr[portIndex+1:] + + // 检查端口号 + if port == "0" { + this.Fail("端口号不能为0") + } + if !configutils.HasVariables(port) { + // 必须是整数 + if !regexp.MustCompile(`^\d+$`).MatchString(port) { + this.Fail("端口号只能为整数") + } + var portInt = types.Int(port) + if portInt == 0 { + this.Fail("端口号不能为0") + } + if portInt > 65535 { + this.Fail("端口号不能大于65535") + } + } resp, err := this.RPC().OriginRPC().CreateOrigin(this.AdminContext(), &pb.CreateOriginRequest{ Name: "", @@ -78,7 +98,7 @@ func (this *AddOriginPopupAction) RunPost(params struct { return } - origin := &serverconfigs.OriginConfig{ + var origin = &serverconfigs.OriginConfig{ Id: resp.OriginId, IsOn: true, Addr: &serverconfigs.NetworkAddressConfig{ diff --git a/internal/web/actions/default/servers/server/settings/origins/addPopup.go b/internal/web/actions/default/servers/server/settings/origins/addPopup.go index 18ce7296..4f302b68 100644 --- a/internal/web/actions/default/servers/server/settings/origins/addPopup.go +++ b/internal/web/actions/default/servers/server/settings/origins/addPopup.go @@ -5,11 +5,13 @@ import ( "errors" "github.com/TeaOSLab/EdgeAdmin/internal/oplogs" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/configutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs" "github.com/iwind/TeaGo/actions" + "github.com/iwind/TeaGo/types" "net/url" "regexp" "strings" @@ -77,7 +79,7 @@ func (this *AddPopupAction) RunPost(params struct { Field("addr", params.Addr). Require("请输入源站地址") - addr := params.Addr + var addr = params.Addr // 是否是完整的地址 if (params.Protocol == "http" || params.Protocol == "https") && regexp.MustCompile(`^(http|https)://`).MatchString(addr) { @@ -89,7 +91,7 @@ func (this *AddPopupAction) RunPost(params struct { addr = strings.ReplaceAll(addr, ":", ":") addr = regexp.MustCompile(`\s+`).ReplaceAllString(addr, "") - portIndex := strings.LastIndex(addr, ":") + var portIndex = strings.LastIndex(addr, ":") if portIndex < 0 { if params.Protocol == "http" { addr += ":80" @@ -100,11 +102,26 @@ func (this *AddPopupAction) RunPost(params struct { } portIndex = strings.LastIndex(addr, ":") } - host := addr[:portIndex] - port := addr[portIndex+1:] + var host = addr[:portIndex] + var port = addr[portIndex+1:] + + // 检查端口号 if port == "0" { this.Fail("端口号不能为0") } + if !configutils.HasVariables(port) { + // 必须是整数 + if !regexp.MustCompile(`^\d+$`).MatchString(port) { + this.Fail("端口号只能为整数") + } + var portInt = types.Int(port) + if portInt == 0 { + this.Fail("端口号不能为0") + } + if portInt > 65535 { + this.Fail("端口号不能大于65535") + } + } connTimeoutJSON, err := (&shared.TimeDuration{ Count: int64(params.ConnTimeout), diff --git a/web/views/@default/servers/addServerNamePopup.html b/web/views/@default/servers/addServerNamePopup.html index 5ba22f5b..90ed1634 100644 --- a/web/views/@default/servers/addServerNamePopup.html +++ b/web/views/@default/servers/addServerNamePopup.html @@ -6,14 +6,14 @@ - + - +
单个域名单个域名 *

请输入单个域名。

多个域名多个域名 *

每行一个域名。