mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-03 12:20:28 +08:00
优化访客IP地址设置
This commit is contained in:
@@ -564,9 +564,11 @@ func (this *CreateAction) RunPost(params struct {
|
||||
var remoteAddrConfig = &serverconfigs.HTTPRemoteAddrConfig{
|
||||
IsOn: true,
|
||||
Value: "${rawRemoteAddr}",
|
||||
Type: serverconfigs.HTTPRemoteAddrTypeDefault,
|
||||
}
|
||||
if params.RemoteAddrIsOn {
|
||||
remoteAddrConfig.Value = "${remoteAddr}"
|
||||
remoteAddrConfig.Type = serverconfigs.HTTPRemoteAddrTypeProxy
|
||||
}
|
||||
remoteAddrConfigJSON, err := json.Marshal(remoteAddrConfig)
|
||||
if err != nil {
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
||||
"github.com/iwind/TeaGo/actions"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -54,9 +55,29 @@ func (this *IndexAction) RunPost(params struct {
|
||||
err := json.Unmarshal(params.RemoteAddrJSON, remoteAddrConfig)
|
||||
if err != nil {
|
||||
this.Fail("参数校验失败:" + err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
remoteAddrConfig.Value = strings.TrimSpace(remoteAddrConfig.Value)
|
||||
|
||||
switch remoteAddrConfig.Type {
|
||||
case serverconfigs.HTTPRemoteAddrTypeRequestHeader:
|
||||
if len(remoteAddrConfig.RequestHeaderName) == 0 {
|
||||
this.FailField("requestHeaderName", "请输入请求报头")
|
||||
return
|
||||
}
|
||||
if !regexp.MustCompile(`^[\w-_]+$`).MatchString(remoteAddrConfig.RequestHeaderName) {
|
||||
this.FailField("requestHeaderName", "请求报头中只能含有数字、英文字母、下划线、中划线")
|
||||
return
|
||||
}
|
||||
remoteAddrConfig.Value = "${header." + remoteAddrConfig.RequestHeaderName + "}"
|
||||
case serverconfigs.HTTPRemoteAddrTypeVariable:
|
||||
if len(remoteAddrConfig.Value) == 0 {
|
||||
this.FailField("value", "请输入自定义变量")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
err = remoteAddrConfig.Init()
|
||||
if err != nil {
|
||||
this.Fail("配置校验失败:" + err.Error())
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
||||
"github.com/iwind/TeaGo/actions"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -46,9 +47,29 @@ func (this *IndexAction) RunPost(params struct {
|
||||
err := json.Unmarshal(params.RemoteAddrJSON, remoteAddrConfig)
|
||||
if err != nil {
|
||||
this.Fail("参数校验失败:" + err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
remoteAddrConfig.Value = strings.TrimSpace(remoteAddrConfig.Value)
|
||||
|
||||
switch remoteAddrConfig.Type {
|
||||
case serverconfigs.HTTPRemoteAddrTypeRequestHeader:
|
||||
if len(remoteAddrConfig.RequestHeaderName) == 0 {
|
||||
this.FailField("requestHeaderName", "请输入请求报头")
|
||||
return
|
||||
}
|
||||
if !regexp.MustCompile(`^[\w-_]+$`).MatchString(remoteAddrConfig.RequestHeaderName) {
|
||||
this.FailField("requestHeaderName", "请求报头中只能含有数字、英文字母、下划线、中划线")
|
||||
return
|
||||
}
|
||||
remoteAddrConfig.Value = "${header." + remoteAddrConfig.RequestHeaderName + "}"
|
||||
case serverconfigs.HTTPRemoteAddrTypeVariable:
|
||||
if len(remoteAddrConfig.Value) == 0 {
|
||||
this.FailField("value", "请输入自定义变量")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
err = remoteAddrConfig.Init()
|
||||
if err != nil {
|
||||
this.Fail("配置校验失败:" + err.Error())
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
||||
"github.com/iwind/TeaGo/actions"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -63,6 +64,25 @@ func (this *IndexAction) RunPost(params struct {
|
||||
}
|
||||
|
||||
remoteAddrConfig.Value = strings.TrimSpace(remoteAddrConfig.Value)
|
||||
|
||||
switch remoteAddrConfig.Type {
|
||||
case serverconfigs.HTTPRemoteAddrTypeRequestHeader:
|
||||
if len(remoteAddrConfig.RequestHeaderName) == 0 {
|
||||
this.FailField("requestHeaderName", "请输入请求报头")
|
||||
return
|
||||
}
|
||||
if !regexp.MustCompile(`^[\w-_]+$`).MatchString(remoteAddrConfig.RequestHeaderName) {
|
||||
this.FailField("requestHeaderName", "请求报头中只能含有数字、英文字母、下划线、中划线")
|
||||
return
|
||||
}
|
||||
remoteAddrConfig.Value = "${header." + remoteAddrConfig.RequestHeaderName + "}"
|
||||
case serverconfigs.HTTPRemoteAddrTypeVariable:
|
||||
if len(remoteAddrConfig.Value) == 0 {
|
||||
this.FailField("value", "请输入自定义变量")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
err = remoteAddrConfig.Init()
|
||||
if err != nil {
|
||||
this.Fail("配置校验失败:" + err.Error())
|
||||
|
||||
Reference in New Issue
Block a user