Files
EdgeCommon/pkg/serverconfigs/shared/http_headers_config.go

59 lines
1.4 KiB
Go
Raw Normal View History

2020-09-13 19:27:47 +08:00
package shared
// HeaderList定义
2020-09-16 20:29:26 +08:00
type HTTPHeaderPolicy struct {
Id int64 `yaml:"id" json:"id"`
IsOn bool `yaml:"isOn" json:"isOn"` // TODO
2020-09-13 19:27:47 +08:00
AddHeaders []*HTTPHeaderConfig `yaml:"addHeaders" json:"addHeaders"` // TODO
AddTrailers []*HTTPHeaderConfig `yaml:"addTrailers" json:"addTrailers"` // TODO
SetHeaders []*HTTPHeaderConfig `yaml:"setHeaders" json:"setHeaders"` // TODO
2020-09-16 20:29:26 +08:00
ReplaceHeaders []*HTTPHeaderConfig `yaml:"replaceHeaders" json:"replaceHeaders"` // 替换Header内容 TODO
DeletedHeaders []string `yaml:"deleteHeaders" json:"deleteHeaders"` // 删除的Header TODO
2020-09-13 19:27:47 +08:00
Expires *HTTPExpireHeaderConfig `yaml:"expires" json:"expires"` // TODO
}
// 获取新对象
2020-09-16 20:29:26 +08:00
func NewHTTPHeaderPolicy() *HTTPHeaderPolicy {
return &HTTPHeaderPolicy{}
2020-09-13 19:27:47 +08:00
}
// 校验
2020-09-16 20:29:26 +08:00
func (this *HTTPHeaderPolicy) Init() error {
2020-09-13 19:27:47 +08:00
for _, h := range this.AddHeaders {
err := h.Init()
if err != nil {
return err
}
}
for _, h := range this.AddTrailers {
err := h.Init()
if err != nil {
return err
}
}
for _, h := range this.SetHeaders {
err := h.Init()
if err != nil {
return err
}
}
for _, h := range this.ReplaceHeaders {
err := h.Init()
if err != nil {
return err
}
}
return nil
}
// 判断是否为空
2020-09-16 20:29:26 +08:00
func (this *HTTPHeaderPolicy) IsEmpty() bool {
2020-09-13 19:27:47 +08:00
return len(this.AddHeaders) == 0 && len(this.AddTrailers) == 0 && len(this.SetHeaders) == 0 && len(this.ReplaceHeaders) == 0 && this.Expires == nil
}