diff --git a/pkg/serverconfigs/firewallconfigs/http_firewall_rule.go b/pkg/serverconfigs/firewallconfigs/http_firewall_rule.go index f76da2d..054ca28 100644 --- a/pkg/serverconfigs/firewallconfigs/http_firewall_rule.go +++ b/pkg/serverconfigs/firewallconfigs/http_firewall_rule.go @@ -48,3 +48,7 @@ func (this *HTTPFirewallRule) Prefix() string { } return this.Param } + +func (this *HTTPFirewallRule) Summary() string { + return this.Param + " " + FindRuleOperatorName(this.Operator) + " " + this.Value +} diff --git a/pkg/serverconfigs/firewallconfigs/http_firewall_rule_operator.go b/pkg/serverconfigs/firewallconfigs/http_firewall_rule_operator.go index 643f960..a522cfa 100644 --- a/pkg/serverconfigs/firewallconfigs/http_firewall_rule_operator.go +++ b/pkg/serverconfigs/firewallconfigs/http_firewall_rule_operator.go @@ -232,3 +232,12 @@ var AllRuleOperators = []*RuleOperatorDefinition{ CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo, }, } + +func FindRuleOperatorName(code string) string { + for _, operator := range AllRuleOperators { + if operator.Code == code { + return operator.Name + } + } + return "" +} diff --git a/pkg/serverconfigs/firewallconfigs/http_firewall_rule_set.go b/pkg/serverconfigs/firewallconfigs/http_firewall_rule_set.go index dce5814..90934f1 100644 --- a/pkg/serverconfigs/firewallconfigs/http_firewall_rule_set.go +++ b/pkg/serverconfigs/firewallconfigs/http_firewall_rule_set.go @@ -1,6 +1,9 @@ package firewallconfigs -import "github.com/iwind/TeaGo/maps" +import ( + "github.com/iwind/TeaGo/logs" + "github.com/iwind/TeaGo/maps" +) // HTTPFirewallActionConfig 单个动作配置 type HTTPFirewallActionConfig struct { @@ -30,7 +33,9 @@ func (this *HTTPFirewallRuleSet) Init() error { for _, rule := range this.Rules { err := rule.Init() if err != nil { - return err + logs.Println("ERROR", "validate rule '"+rule.Summary()+"' failed: "+err.Error()) + + // 这里不阻断执行,因为先前有些用户填写了错误的规则 } }