2020-09-13 20:37:07 +08:00
|
|
|
package waf
|
|
|
|
|
|
|
|
|
|
import (
|
2020-10-06 21:02:37 +08:00
|
|
|
"encoding/json"
|
|
|
|
|
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
|
|
|
|
|
"github.com/TeaOSLab/EdgeAdmin/internal/web/models"
|
|
|
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
|
2020-09-13 20:37:07 +08:00
|
|
|
"github.com/iwind/TeaGo/actions"
|
|
|
|
|
"net/http"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Helper struct {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewHelper() *Helper {
|
|
|
|
|
return &Helper{}
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-06 21:02:37 +08:00
|
|
|
func (this *Helper) BeforeAction(actionPtr actions.ActionWrapper) (goNext bool) {
|
|
|
|
|
action := actionPtr.Object()
|
2020-09-13 20:37:07 +08:00
|
|
|
if action.Request.Method != http.MethodGet {
|
2020-10-06 21:02:37 +08:00
|
|
|
return true
|
2020-09-13 20:37:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
action.Data["mainTab"] = "component"
|
|
|
|
|
action.Data["secondMenuItem"] = "waf"
|
2020-10-06 21:02:37 +08:00
|
|
|
|
|
|
|
|
// 显示当前的防火墙名称
|
|
|
|
|
firewallPolicyId := action.ParamInt64("firewallPolicyId")
|
|
|
|
|
if firewallPolicyId > 0 {
|
|
|
|
|
action.Data["firewallPolicyId"] = firewallPolicyId
|
|
|
|
|
action.Data["countInboundGroups"] = 0
|
|
|
|
|
action.Data["countOutboundGroups"] = 0
|
|
|
|
|
parentAction := actionutils.FindParentAction(actionPtr)
|
|
|
|
|
if parentAction != nil {
|
|
|
|
|
firewallPolicy, err := models.SharedHTTPFirewallPolicyDAO.FindEnabledPolicy(parentAction.AdminContext(), firewallPolicyId)
|
|
|
|
|
if err != nil {
|
|
|
|
|
parentAction.ErrorPage(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if firewallPolicy == nil {
|
|
|
|
|
action.WriteString("can not find firewall policy")
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
action.Data["firewallPolicyName"] = firewallPolicy.Name
|
|
|
|
|
|
|
|
|
|
// inbound
|
|
|
|
|
if len(firewallPolicy.InboundJSON) > 0 {
|
|
|
|
|
inboundConfig := &firewallconfigs.HTTPFirewallInboundConfig{}
|
|
|
|
|
err = json.Unmarshal(firewallPolicy.InboundJSON, inboundConfig)
|
|
|
|
|
if err != nil {
|
|
|
|
|
parentAction.ErrorPage(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
action.Data["countInboundGroups"] = len(inboundConfig.GroupRefs)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// outbound
|
|
|
|
|
if len(firewallPolicy.OutboundJSON) > 0 {
|
|
|
|
|
outboundConfig := &firewallconfigs.HTTPFirewallOutboundConfig{}
|
|
|
|
|
err = json.Unmarshal(firewallPolicy.OutboundJSON, outboundConfig)
|
|
|
|
|
if err != nil {
|
|
|
|
|
parentAction.ErrorPage(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
action.Data["countOutboundGroups"] = len(outboundConfig.GroupRefs)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true
|
2020-09-13 20:37:07 +08:00
|
|
|
}
|