From d2bf6690b2ea26fdae25c5735c79c01630bd5e7b Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sat, 25 Sep 2021 19:41:10 +0800 Subject: [PATCH] =?UTF-8?q?WAF=E8=A7=84=E5=88=99=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=B8=8D=E9=98=BB=E6=96=AD=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/serverconfigs/firewallconfigs/http_firewall_rule.go | 4 ++++ .../firewallconfigs/http_firewall_rule_operator.go | 9 +++++++++ .../firewallconfigs/http_firewall_rule_set.go | 9 +++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) 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()) + + // 这里不阻断执行,因为先前有些用户填写了错误的规则 } }