mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-11 01:50:27 +08:00
在WAF规则产生错误时给予提示
This commit is contained in:
@@ -73,6 +73,14 @@ func (this *GroupAction) RunGet(params struct {
|
|||||||
"name": set.Name,
|
"name": set.Name,
|
||||||
"rules": lists.Map(set.Rules, func(k int, v interface{}) interface{} {
|
"rules": lists.Map(set.Rules, func(k int, v interface{}) interface{} {
|
||||||
rule := v.(*firewallconfigs.HTTPFirewallRule)
|
rule := v.(*firewallconfigs.HTTPFirewallRule)
|
||||||
|
|
||||||
|
// 校验
|
||||||
|
var errString = ""
|
||||||
|
var err = rule.Init()
|
||||||
|
if err != nil {
|
||||||
|
errString = err.Error()
|
||||||
|
}
|
||||||
|
|
||||||
return maps.Map{
|
return maps.Map{
|
||||||
"param": rule.Param,
|
"param": rule.Param,
|
||||||
"paramFilters": rule.ParamFilters,
|
"paramFilters": rule.ParamFilters,
|
||||||
@@ -81,6 +89,7 @@ func (this *GroupAction) RunGet(params struct {
|
|||||||
"isCaseInsensitive": rule.IsCaseInsensitive,
|
"isCaseInsensitive": rule.IsCaseInsensitive,
|
||||||
"isComposed": firewallconfigs.CheckCheckpointIsComposed(rule.Prefix()),
|
"isComposed": firewallconfigs.CheckCheckpointIsComposed(rule.Prefix()),
|
||||||
"checkpointOptions": rule.CheckpointOptions,
|
"checkpointOptions": rule.CheckpointOptions,
|
||||||
|
"err": errString,
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
"isOn": set.IsOn,
|
"isOn": set.IsOn,
|
||||||
|
|||||||
@@ -74,6 +74,11 @@ func (this *GroupAction) RunGet(params struct {
|
|||||||
"name": set.Name,
|
"name": set.Name,
|
||||||
"rules": lists.Map(set.Rules, func(k int, v interface{}) interface{} {
|
"rules": lists.Map(set.Rules, func(k int, v interface{}) interface{} {
|
||||||
rule := v.(*firewallconfigs.HTTPFirewallRule)
|
rule := v.(*firewallconfigs.HTTPFirewallRule)
|
||||||
|
var errString = ""
|
||||||
|
var err = rule.Init()
|
||||||
|
if err != nil {
|
||||||
|
errString = err.Error()
|
||||||
|
}
|
||||||
return maps.Map{
|
return maps.Map{
|
||||||
"param": rule.Param,
|
"param": rule.Param,
|
||||||
"paramFilters": rule.ParamFilters,
|
"paramFilters": rule.ParamFilters,
|
||||||
@@ -82,6 +87,7 @@ func (this *GroupAction) RunGet(params struct {
|
|||||||
"isCaseInsensitive": rule.IsCaseInsensitive,
|
"isCaseInsensitive": rule.IsCaseInsensitive,
|
||||||
"isComposed": firewallconfigs.CheckCheckpointIsComposed(rule.Prefix()),
|
"isComposed": firewallconfigs.CheckCheckpointIsComposed(rule.Prefix()),
|
||||||
"checkpointOptions": rule.CheckpointOptions,
|
"checkpointOptions": rule.CheckpointOptions,
|
||||||
|
"err": errString,
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
"isOn": set.IsOn,
|
"isOn": set.IsOn,
|
||||||
|
|||||||
@@ -6,6 +6,13 @@ Vue.component("http-firewall-rule-label", {
|
|||||||
rule: this.vRule
|
rule: this.vRule
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
methods: {
|
||||||
|
showErr: function (err) {
|
||||||
|
|
||||||
|
teaweb.popupTip("规则校验错误,请修正:<span class=\"red\">" + teaweb.encodeHTML(err) + "</span>")
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
template: `<div>
|
template: `<div>
|
||||||
<div class="ui label tiny basic">
|
<div class="ui label tiny basic">
|
||||||
{{rule.name}}[{{rule.param}}]
|
{{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>
|
<var :class="{dash:rule.isCaseInsensitive}" :title="rule.isCaseInsensitive ? '大小写不敏感':''" v-if="!rule.isComposed">{{rule.operator}}</var>
|
||||||
{{rule.value}}
|
{{rule.value}}
|
||||||
</span>
|
</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>
|
||||||
</div>`
|
</div>`
|
||||||
})
|
})
|
||||||
@@ -597,6 +597,12 @@ window.teaweb = {
|
|||||||
instance.resize()
|
instance.resize()
|
||||||
})
|
})
|
||||||
return instance
|
return instance
|
||||||
|
},
|
||||||
|
encodeHTML: function (s) {
|
||||||
|
s = s.replace("&", "&")
|
||||||
|
s = s.replace("<", "<")
|
||||||
|
s = s.replace(">", ">")
|
||||||
|
return s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user