diff --git a/internal/db/models/http_firewall_policy_dao.go b/internal/db/models/http_firewall_policy_dao.go index c8314683..e251a7de 100644 --- a/internal/db/models/http_firewall_policy_dao.go +++ b/internal/db/models/http_firewall_policy_dao.go @@ -399,7 +399,7 @@ func (this *HTTPFirewallPolicyDAO) ListEnabledFirewallPolicies(tx *dbs.Tx, clust } // ComposeFirewallPolicy 组合策略配置 -func (this *HTTPFirewallPolicyDAO) ComposeFirewallPolicy(tx *dbs.Tx, policyId int64, cacheMap *utils.CacheMap) (*firewallconfigs.HTTPFirewallPolicy, error) { +func (this *HTTPFirewallPolicyDAO) ComposeFirewallPolicy(tx *dbs.Tx, policyId int64, forNode bool, cacheMap *utils.CacheMap) (*firewallconfigs.HTTPFirewallPolicy, error) { if cacheMap == nil { cacheMap = utils.NewCacheMap() } @@ -433,18 +433,18 @@ func (this *HTTPFirewallPolicyDAO) ComposeFirewallPolicy(tx *dbs.Tx, policyId in config.Mode = policy.Mode // Inbound - inbound := &firewallconfigs.HTTPFirewallInboundConfig{} + var inbound = &firewallconfigs.HTTPFirewallInboundConfig{} if IsNotNull(policy.Inbound) { err = json.Unmarshal(policy.Inbound, inbound) if err != nil { return nil, err } if len(inbound.GroupRefs) > 0 { - resultGroupRefs := []*firewallconfigs.HTTPFirewallRuleGroupRef{} - resultGroups := []*firewallconfigs.HTTPFirewallRuleGroup{} + var resultGroupRefs = []*firewallconfigs.HTTPFirewallRuleGroupRef{} + var resultGroups = []*firewallconfigs.HTTPFirewallRuleGroup{} for _, groupRef := range inbound.GroupRefs { - groupConfig, err := SharedHTTPFirewallRuleGroupDAO.ComposeFirewallRuleGroup(tx, groupRef.GroupId) + groupConfig, err := SharedHTTPFirewallRuleGroupDAO.ComposeFirewallRuleGroup(tx, groupRef.GroupId, forNode) if err != nil { return nil, err } @@ -461,18 +461,18 @@ func (this *HTTPFirewallPolicyDAO) ComposeFirewallPolicy(tx *dbs.Tx, policyId in config.Inbound = inbound // Outbound - outbound := &firewallconfigs.HTTPFirewallOutboundConfig{} + var outbound = &firewallconfigs.HTTPFirewallOutboundConfig{} if IsNotNull(policy.Outbound) { err = json.Unmarshal(policy.Outbound, outbound) if err != nil { return nil, err } if len(outbound.GroupRefs) > 0 { - resultGroupRefs := []*firewallconfigs.HTTPFirewallRuleGroupRef{} - resultGroups := []*firewallconfigs.HTTPFirewallRuleGroup{} + var resultGroupRefs = []*firewallconfigs.HTTPFirewallRuleGroupRef{} + var resultGroups = []*firewallconfigs.HTTPFirewallRuleGroup{} for _, groupRef := range outbound.GroupRefs { - groupConfig, err := SharedHTTPFirewallRuleGroupDAO.ComposeFirewallRuleGroup(tx, groupRef.GroupId) + groupConfig, err := SharedHTTPFirewallRuleGroupDAO.ComposeFirewallRuleGroup(tx, groupRef.GroupId, forNode) if err != nil { return nil, err } diff --git a/internal/db/models/http_firewall_rule_group_dao.go b/internal/db/models/http_firewall_rule_group_dao.go index 4fbf60de..d533b383 100644 --- a/internal/db/models/http_firewall_rule_group_dao.go +++ b/internal/db/models/http_firewall_rule_group_dao.go @@ -81,7 +81,7 @@ func (this *HTTPFirewallRuleGroupDAO) FindHTTPFirewallRuleGroupName(tx *dbs.Tx, } // ComposeFirewallRuleGroup 组合配置 -func (this *HTTPFirewallRuleGroupDAO) ComposeFirewallRuleGroup(tx *dbs.Tx, groupId int64) (*firewallconfigs.HTTPFirewallRuleGroup, error) { +func (this *HTTPFirewallRuleGroupDAO) ComposeFirewallRuleGroup(tx *dbs.Tx, groupId int64, forNode bool) (*firewallconfigs.HTTPFirewallRuleGroup, error) { group, err := this.FindEnabledHTTPFirewallRuleGroup(tx, groupId) if err != nil { return nil, err @@ -89,7 +89,7 @@ func (this *HTTPFirewallRuleGroupDAO) ComposeFirewallRuleGroup(tx *dbs.Tx, group if group == nil { return nil, nil } - config := &firewallconfigs.HTTPFirewallRuleGroup{} + var config = &firewallconfigs.HTTPFirewallRuleGroup{} config.Id = int64(group.Id) config.IsOn = group.IsOn config.Name = group.Name @@ -98,7 +98,7 @@ func (this *HTTPFirewallRuleGroupDAO) ComposeFirewallRuleGroup(tx *dbs.Tx, group config.IsTemplate = group.IsTemplate if IsNotNull(group.Sets) { - setRefs := []*firewallconfigs.HTTPFirewallRuleSetRef{} + var setRefs = []*firewallconfigs.HTTPFirewallRuleSetRef{} err = json.Unmarshal(group.Sets, &setRefs) if err != nil { return nil, err @@ -108,7 +108,7 @@ func (this *HTTPFirewallRuleGroupDAO) ComposeFirewallRuleGroup(tx *dbs.Tx, group if err != nil { return nil, err } - if setConfig != nil { + if setConfig != nil && (!forNode || setConfig.IsOn) { config.SetRefs = append(config.SetRefs, setRef) config.Sets = append(config.Sets, setConfig) } diff --git a/internal/db/models/http_web_dao.go b/internal/db/models/http_web_dao.go index 26db366a..1bdebd76 100644 --- a/internal/db/models/http_web_dao.go +++ b/internal/db/models/http_web_dao.go @@ -301,7 +301,7 @@ func (this *HTTPWebDAO) ComposeWebConfig(tx *dbs.Tx, webId int64, isLocationOrGr // 自定义防火墙设置 if firewallRef.FirewallPolicyId > 0 { - firewallPolicy, err := SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, firewallRef.FirewallPolicyId, cacheMap) + firewallPolicy, err := SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, firewallRef.FirewallPolicyId, forNode, cacheMap) if err != nil { return nil, err } diff --git a/internal/db/models/node_dao.go b/internal/db/models/node_dao.go index 8e1c48e9..099304e9 100644 --- a/internal/db/models/node_dao.go +++ b/internal/db/models/node_dao.go @@ -1117,7 +1117,7 @@ func (this *NodeDAO) ComposeNodeConfig(tx *dbs.Tx, nodeId int64, dataMap *shared // 防火墙 var httpFirewallPolicyId = int64(nodeCluster.HttpFirewallPolicyId) if httpFirewallPolicyId > 0 { - firewallPolicy, err := SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, httpFirewallPolicyId, cacheMap) + firewallPolicy, err := SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, httpFirewallPolicyId, true, cacheMap) if err != nil { return nil, err } diff --git a/internal/rpc/services/service_http_firewall_policy.go b/internal/rpc/services/service_http_firewall_policy.go index d3362fd0..35773491 100644 --- a/internal/rpc/services/service_http_firewall_policy.go +++ b/internal/rpc/services/service_http_firewall_policy.go @@ -177,7 +177,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallPolicy(ctx context.Cont var tx = this.NullTx() // 已经有的数据 - firewallPolicy, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, req.HttpFirewallPolicyId, nil) + firewallPolicy, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, req.HttpFirewallPolicyId, false, nil) if err != nil { return nil, err } @@ -448,7 +448,7 @@ func (this *HTTPFirewallPolicyService) FindEnabledHTTPFirewallPolicyConfig(ctx c var tx = this.NullTx() - config, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, req.HttpFirewallPolicyId, nil) + config, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, req.HttpFirewallPolicyId, false, nil) if err != nil { return nil, err } @@ -512,7 +512,7 @@ func (this *HTTPFirewallPolicyService) ImportHTTPFirewallPolicy(ctx context.Cont var tx = this.NullTx() - oldConfig, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, req.HttpFirewallPolicyId, nil) + oldConfig, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, req.HttpFirewallPolicyId, false, nil) if err != nil { return nil, err } @@ -675,7 +675,7 @@ func (this *HTTPFirewallPolicyService) CheckHTTPFirewallPolicyIPStatus(ctx conte ipLong := utils.IP2Long(req.Ip) var tx = this.NullTx() - firewallPolicy, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, req.HttpFirewallPolicyId, nil) + firewallPolicy, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, req.HttpFirewallPolicyId, false, nil) if err != nil { return nil, err } diff --git a/internal/rpc/services/service_http_firewall_rule_group.go b/internal/rpc/services/service_http_firewall_rule_group.go index 5188c9bc..d28f0c68 100644 --- a/internal/rpc/services/service_http_firewall_rule_group.go +++ b/internal/rpc/services/service_http_firewall_rule_group.go @@ -101,7 +101,7 @@ func (this *HTTPFirewallRuleGroupService) FindEnabledHTTPFirewallRuleGroupConfig var tx = this.NullTx() - groupConfig, err := models.SharedHTTPFirewallRuleGroupDAO.ComposeFirewallRuleGroup(tx, req.FirewallRuleGroupId) + groupConfig, err := models.SharedHTTPFirewallRuleGroupDAO.ComposeFirewallRuleGroup(tx, req.FirewallRuleGroupId, false) if err != nil { return nil, err } @@ -198,7 +198,7 @@ func (this *HTTPFirewallRuleGroupService) AddHTTPFirewallRuleGroupSet(ctx contex var tx = this.NullTx() // 已经有的规则 - config, err := models.SharedHTTPFirewallRuleGroupDAO.ComposeFirewallRuleGroup(tx, req.FirewallRuleGroupId) + config, err := models.SharedHTTPFirewallRuleGroupDAO.ComposeFirewallRuleGroup(tx, req.FirewallRuleGroupId, false) if err != nil { return nil, err }