From ee13b5be9329c67c332fe4f66507e97841e98dc2 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sat, 21 May 2022 18:58:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=88=9B=E5=BB=BAWAF=E6=97=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=BB=98=E8=AE=A4=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/models/http_firewall_policy_dao.go | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/internal/db/models/http_firewall_policy_dao.go b/internal/db/models/http_firewall_policy_dao.go index 5dfb5f70..3a38a346 100644 --- a/internal/db/models/http_firewall_policy_dao.go +++ b/internal/db/models/http_firewall_policy_dao.go @@ -117,7 +117,7 @@ func (this *HTTPFirewallPolicyDAO) FindAllEnabledFirewallPolicies(tx *dbs.Tx) (r // CreateFirewallPolicy 创建策略 func (this *HTTPFirewallPolicyDAO) CreateFirewallPolicy(tx *dbs.Tx, userId int64, serverGroupId int64, serverId int64, isOn bool, name string, description string, inboundJSON []byte, outboundJSON []byte) (int64, error) { - op := NewHTTPFirewallPolicyOperator() + var op = NewHTTPFirewallPolicyOperator() op.UserId = userId op.GroupId = serverGroupId op.ServerId = serverId @@ -131,14 +131,31 @@ func (this *HTTPFirewallPolicyDAO) CreateFirewallPolicy(tx *dbs.Tx, userId int64 if len(outboundJSON) > 0 { op.Outbound = outboundJSON } - op.UseLocalFirewall = true - { - synFloodJSON, err := json.Marshal(firewallconfigs.DefaultSYNFloodConfig()) + if userId <= 0 && serverGroupId <=0 && serverId <= 0 { + // synFlood + var synFloodConfig = firewallconfigs.DefaultSYNFloodConfig() + synFloodJSON, err := json.Marshal(synFloodConfig) if err != nil { return 0, err } op.SynFlood = synFloodJSON + + // block options + var blockOptions = firewallconfigs.DefaultHTTPFirewallBlockAction() + blockOptionsJSON, err := json.Marshal(blockOptions) + if err != nil { + return 0, err + } + op.BlockOptions = blockOptionsJSON + + // captcha options + var captchaOptions = firewallconfigs.DefaultHTTPFirewallCaptchaAction() + captchaOptionsJSON, err := json.Marshal(captchaOptions) + if err != nil { + return 0, err + } + op.CaptchaOptions = captchaOptionsJSON } err := this.Save(tx, op) @@ -160,8 +177,8 @@ func (this *HTTPFirewallPolicyDAO) CreateDefaultFirewallPolicy(tx *dbs.Tx, name groupCodes = append(groupCodes, group.Code) } - inboundConfig := &firewallconfigs.HTTPFirewallInboundConfig{IsOn: true} - outboundConfig := &firewallconfigs.HTTPFirewallOutboundConfig{IsOn: true} + var inboundConfig = &firewallconfigs.HTTPFirewallInboundConfig{IsOn: true} + var outboundConfig = &firewallconfigs.HTTPFirewallOutboundConfig{IsOn: true} if templatePolicy.Inbound != nil { for _, group := range templatePolicy.Inbound.Groups { isOn := lists.ContainsString(groupCodes, group.Code) @@ -207,6 +224,7 @@ func (this *HTTPFirewallPolicyDAO) CreateDefaultFirewallPolicy(tx *dbs.Tx, name if err != nil { return 0, err } + return policyId, nil }