From 45f90ab92e25c2a30dfe0bae3fcf7315353bb9b7 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 13 Aug 2023 10:00:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96WAF=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=A7=84=E5=88=99=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servers/components/waf/createRulePopup.go | 23 +++++----- .../components/waf/createRulePopup.html | 44 ++++++++++++++++--- 2 files changed, 51 insertions(+), 16 deletions(-) diff --git a/internal/web/actions/default/servers/components/waf/createRulePopup.go b/internal/web/actions/default/servers/components/waf/createRulePopup.go index 6843029d..3849a805 100644 --- a/internal/web/actions/default/servers/components/waf/createRulePopup.go +++ b/internal/web/actions/default/servers/components/waf/createRulePopup.go @@ -5,7 +5,6 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs" "github.com/iwind/TeaGo/actions" - "github.com/iwind/TeaGo/lists" "github.com/iwind/TeaGo/maps" ) @@ -21,7 +20,7 @@ func (this *CreateRulePopupAction) RunGet(params struct { Type string }) { // check points - checkpointList := []maps.Map{} + var checkpointList = []maps.Map{} for _, checkpoint := range firewallconfigs.AllCheckpoints { if (params.Type == "inbound" && checkpoint.IsRequest) || params.Type == "outbound" { checkpointList = append(checkpointList, maps.Map{ @@ -38,15 +37,17 @@ func (this *CreateRulePopupAction) RunGet(params struct { } // operators - this.Data["operators"] = lists.Map(firewallconfigs.AllRuleOperators, func(k int, v interface{}) interface{} { - def := v.(*firewallconfigs.RuleOperatorDefinition) - return maps.Map{ - "name": def.Name, - "code": def.Code, - "description": def.Description, - "case": def.CaseInsensitive, - } - }) + var operatorMaps = []maps.Map{} + for _, operator := range firewallconfigs.AllRuleOperators { + operatorMaps = append(operatorMaps, maps.Map{ + "name": operator.Name, + "code": operator.Code, + "description": operator.Description, + "case": operator.CaseInsensitive, + "dataType": operator.DataType, + }) + } + this.Data["operators"] = operatorMaps this.Data["checkpoints"] = checkpointList diff --git a/web/views/@default/servers/components/waf/createRulePopup.html b/web/views/@default/servers/components/waf/createRulePopup.html index 28a92278..73775a55 100644 --- a/web/views/@default/servers/components/waf/createRulePopup.html +++ b/web/views/@default/servers/components/waf/createRulePopup.html @@ -17,7 +17,7 @@ -

${{{checkpoint.prefix}}}{{checkpoint.description}}

+

${{{checkpoint.prefix}}}{{checkpoint.description}}

@@ -91,7 +91,14 @@ - 正则表达式 + 正则表达式 + 对比数字 + 对比字符串 + 一组对比字符串 + 字符串或数字 + 对比版本号 + 对比IP + 一组对比IP 对比值 @@ -114,9 +121,36 @@ + +
+ +

输入和参数对比的数字,比如123123.456

+
+ + +
+ +

输入和参数对比的字符串或数字,比如123abc

+
+ + +
+ +

输入和参数对比的版本号,比如1.2.7

+
+ + +
+ +

输入和参数对比的IP,比如192.168.2.100

+
+ - -

警告:发现你填写的正则表达式中包含了换行符,如果你的意图是每行都表示不同的选项,那么请使用竖杠(|)符号代替换行符,比如把a换行b换行c换行改成a|b|c[帮我转换]

+
+ +

正则表达式中对于要匹配的内容中的特殊字符需要转义处理(即在字符前面加入反斜杠\),比如.?*+()[]{}^$\等符号要变成\.\?\*\+\(\)\[\]\{\}\^\$\\

+
+

警告:发现你填写的正则表达式中包含了换行符,如果你的意图是每行都表示不同的选项,那么请使用竖杠(|)符号代替换行符,比如把a换行b换行c换行改成a|b|c[帮我转换]

@@ -142,7 +176,7 @@
- + 正则表达式测试 [输入测试字符串]