Files
EdgeCommon/pkg/serverconfigs/http_remote_addr_config.go

38 lines
974 B
Go

// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package serverconfigs
import (
"regexp"
"strings"
)
// HTTPRemoteAddrConfig HTTP获取客户端IP地址方式
type HTTPRemoteAddrConfig struct {
IsPrior bool `yaml:"isPrior" json:"isPrior"`
IsOn bool `yaml:"isOn" json:"isOn"`
Value string `yaml:"value" json:"value"` // 值变量
IsCustomized bool `yaml:"isCustomized" json:"isCustomized"` // 是否自定义
isEmpty bool
}
// Init 初始化
func (this *HTTPRemoteAddrConfig) Init() error {
this.Value = strings.TrimSpace(this.Value)
if len(this.Value) == 0 {
this.isEmpty = true
} else if regexp.MustCompile(`\s+`).ReplaceAllString(this.Value, "") == "${remoteAddr}" {
this.isEmpty = true
}
this.Value = strings.ReplaceAll(this.Value, "${remoteAddr}", "${remoteAddrValue}")
return nil
}
// IsEmpty 是否为空
func (this *HTTPRemoteAddrConfig) IsEmpty() bool {
return this.isEmpty
}