diff --git a/internal/web/actions/default/api/node/createAddrPopup.go b/internal/web/actions/default/api/node/createAddrPopup.go index c546fd8a..5e527e9a 100644 --- a/internal/web/actions/default/api/node/createAddrPopup.go +++ b/internal/web/actions/default/api/node/createAddrPopup.go @@ -5,9 +5,12 @@ import ( "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/iwind/TeaGo/actions" "net" + "net/url" + "regexp" + "strings" ) -// 添加地址 +// CreateAddrPopupAction 添加地址 type CreateAddrPopupAction struct { actionutils.ParentAction } @@ -30,12 +33,31 @@ func (this *CreateAddrPopupAction) RunPost(params struct { Field("addr", params.Addr). Require("请输入访问地址") + // 兼容URL + if regexp.MustCompile(`^(?i)(http|https)://`).MatchString(params.Addr) { + u, err := url.Parse(params.Addr) + if err != nil { + this.FailField("addr", "错误的访问地址,不需要添加http://或https://") + } + params.Addr = u.Host + } + + // 自动添加端口 + if !strings.Contains(params.Addr, ":") { + switch params.Protocol { + case "http": + params.Addr += ":80" + case "https": + params.Addr += ":443" + } + } + host, port, err := net.SplitHostPort(params.Addr) if err != nil { this.FailField("addr", "错误的访问地址") } - addrConfig := &serverconfigs.NetworkAddressConfig{ + var addrConfig = &serverconfigs.NetworkAddressConfig{ Protocol: serverconfigs.Protocol(params.Protocol), Host: host, PortRange: port, diff --git a/internal/web/actions/default/api/node/updateAddrPopup.go b/internal/web/actions/default/api/node/updateAddrPopup.go index 539270f8..fd0719bb 100644 --- a/internal/web/actions/default/api/node/updateAddrPopup.go +++ b/internal/web/actions/default/api/node/updateAddrPopup.go @@ -5,6 +5,9 @@ import ( "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/iwind/TeaGo/actions" "net" + "net/url" + "regexp" + "strings" ) type UpdateAddrPopupAction struct { @@ -27,6 +30,26 @@ func (this *UpdateAddrPopupAction) RunPost(params struct { params.Must. Field("addr", params.Addr). Require("请输入访问地址") + + // 兼容URL + if regexp.MustCompile(`^(?i)(http|https)://`).MatchString(params.Addr) { + u, err := url.Parse(params.Addr) + if err != nil { + this.FailField("addr", "错误的访问地址,不需要添加http://或https://") + } + params.Addr = u.Host + } + + // 自动添加端口 + if !strings.Contains(params.Addr, ":") { + switch params.Protocol { + case "http": + params.Addr += ":80" + case "https": + params.Addr += ":443" + } + } + host, port, err := net.SplitHostPort(params.Addr) if err != nil { this.FailField("addr", "错误的访问地址") diff --git a/web/views/@default/api/node/install.html b/web/views/@default/api/node/install.html index 8a735783..43f13b15 100644 --- a/web/views/@default/api/node/install.html +++ b/web/views/@default/api/node/install.html @@ -4,10 +4,11 @@

安装步骤

    -
  1. 按照下面的配置信息替换configs/api.yaml内容
  2. -
  3. 按照下面的配置信息替换configs/db.yaml内容
  4. +
  5. 按照下面的配置信息替换configs/api.yaml内容;如果文件不存在,请先创建
  6. +
  7. 按照下面的配置信息替换configs/db.yaml内容;如果文件不存在,请先创建
  8. 使用bin/edge-api start启动节点
  9. 可以在logs/run.log中查看启动是否有异常
  10. +
  11. 配置修改后,使用bin/edge-api restart重启节点
diff --git a/web/views/@default/settings/monitor-nodes/node/install.html b/web/views/@default/settings/monitor-nodes/node/install.html index 8122c593..5527f1c2 100644 --- a/web/views/@default/settings/monitor-nodes/node/install.html +++ b/web/views/@default/settings/monitor-nodes/node/install.html @@ -4,9 +4,10 @@

安装步骤

    -
  1. 按照下面的配置信息替换configs/api.yaml内容
  2. +
  3. 按照下面的配置信息替换configs/api.yaml内容;如果文件不存在,请先创建
  4. 使用bin/edge-monitor start启动节点
  5. 可以在logs/run.log中查看启动是否有异常
  6. +
  7. 配置修改后,使用bin/edge-monitor restart重启节点
diff --git a/web/views/@default/settings/user-nodes/node/install.html b/web/views/@default/settings/user-nodes/node/install.html index 12bcf281..187f6e66 100644 --- a/web/views/@default/settings/user-nodes/node/install.html +++ b/web/views/@default/settings/user-nodes/node/install.html @@ -4,9 +4,10 @@

安装步骤

    -
  1. 按照下面的配置信息替换configs/api.yaml内容
  2. +
  3. 按照下面的配置信息替换configs/api.yaml内容;如果文件不存在,请先创建
  4. 使用bin/edge-user start启动节点
  5. 可以在logs/run.log中查看启动是否有异常
  6. +
  7. 配置修改后,使用bin/edge-user restart重启节点