在WAF规则产生错误时给予提示

This commit is contained in:
刘祥超
2021-09-27 10:11:37 +08:00
parent 788a86bdcf
commit 8676f2711b
4 changed files with 30 additions and 0 deletions

View File

@@ -73,6 +73,14 @@ func (this *GroupAction) RunGet(params struct {
"name": set.Name,
"rules": lists.Map(set.Rules, func(k int, v interface{}) interface{} {
rule := v.(*firewallconfigs.HTTPFirewallRule)
// 校验
var errString = ""
var err = rule.Init()
if err != nil {
errString = err.Error()
}
return maps.Map{
"param": rule.Param,
"paramFilters": rule.ParamFilters,
@@ -81,6 +89,7 @@ func (this *GroupAction) RunGet(params struct {
"isCaseInsensitive": rule.IsCaseInsensitive,
"isComposed": firewallconfigs.CheckCheckpointIsComposed(rule.Prefix()),
"checkpointOptions": rule.CheckpointOptions,
"err": errString,
}
}),
"isOn": set.IsOn,

View File

@@ -74,6 +74,11 @@ func (this *GroupAction) RunGet(params struct {
"name": set.Name,
"rules": lists.Map(set.Rules, func(k int, v interface{}) interface{} {
rule := v.(*firewallconfigs.HTTPFirewallRule)
var errString = ""
var err = rule.Init()
if err != nil {
errString = err.Error()
}
return maps.Map{
"param": rule.Param,
"paramFilters": rule.ParamFilters,
@@ -82,6 +87,7 @@ func (this *GroupAction) RunGet(params struct {
"isCaseInsensitive": rule.IsCaseInsensitive,
"isComposed": firewallconfigs.CheckCheckpointIsComposed(rule.Prefix()),
"checkpointOptions": rule.CheckpointOptions,
"err": errString,
}
}),
"isOn": set.IsOn,

View File

@@ -6,6 +6,13 @@ Vue.component("http-firewall-rule-label", {
rule: this.vRule
}
},
methods: {
showErr: function (err) {
teaweb.popupTip("规则校验错误,请修正:<span class=\"red\">" + teaweb.encodeHTML(err) + "</span>")
},
},
template: `<div>
<div class="ui label tiny basic">
{{rule.name}}[{{rule.param}}]
@@ -19,6 +26,8 @@ Vue.component("http-firewall-rule-label", {
<var :class="{dash:rule.isCaseInsensitive}" :title="rule.isCaseInsensitive ? '大小写不敏感':''" v-if="!rule.isComposed">{{rule.operator}}</var>
{{rule.value}}
</span>
<a href="" v-if="rule.err != null && rule.err.length > 0" @click.prevent="showErr(rule.err)" style="color: #db2828; opacity: 1; border-bottom: 1px #db2828 dashed; margin-left: 0.5em">规则错误</a>
</div>
</div>`
})

View File

@@ -597,6 +597,12 @@ window.teaweb = {
instance.resize()
})
return instance
},
encodeHTML: function (s) {
s = s.replace("&", "&amp;")
s = s.replace("<", "&lt;")
s = s.replace(">", "&gt;")
return s
}
}