diff --git a/internal/db/models/http_firewall_rule_dao.go b/internal/db/models/http_firewall_rule_dao.go index 4a476bde..86fac63c 100644 --- a/internal/db/models/http_firewall_rule_dao.go +++ b/internal/db/models/http_firewall_rule_dao.go @@ -92,6 +92,16 @@ func (this *HTTPFirewallRuleDAO) ComposeFirewallRule(ruleId int64) (*firewallcon config.Id = int64(rule.Id) config.IsOn = rule.IsOn == 1 config.Param = rule.Param + + paramFilters := []*firewallconfigs.ParamFilter{} + if IsNotNull(rule.ParamFilters) { + err = json.Unmarshal([]byte(rule.ParamFilters), ¶mFilters) + if err != nil { + return nil, err + } + } + config.ParamFilters = paramFilters + config.Operator = rule.Operator config.Value = rule.Value config.IsCaseInsensitive = rule.IsCaseInsensitive == 1 @@ -118,6 +128,17 @@ func (this *HTTPFirewallRuleDAO) CreateOrUpdateRuleFromConfig(ruleConfig *firewa op.IsOn = ruleConfig.IsOn op.Description = ruleConfig.Description op.Param = ruleConfig.Param + + if len(ruleConfig.ParamFilters) == 0 { + op.ParamFilters = "[]" + } else { + paramFilters, err := json.Marshal(ruleConfig.ParamFilters) + if err != nil { + return 0, err + } + op.ParamFilters = paramFilters + } + op.Value = ruleConfig.Value op.IsCaseInsensitive = ruleConfig.IsCaseInsensitive op.Operator = ruleConfig.Operator diff --git a/internal/db/models/http_firewall_rule_model.go b/internal/db/models/http_firewall_rule_model.go index db12b0a1..3cb3ca94 100644 --- a/internal/db/models/http_firewall_rule_model.go +++ b/internal/db/models/http_firewall_rule_model.go @@ -6,7 +6,7 @@ type HTTPFirewallRule struct { IsOn uint8 `field:"isOn"` // 是否启用 Description string `field:"description"` // 说明 Param string `field:"param"` // 参数 - Filters string `field:"filters"` // 处理器 + ParamFilters string `field:"paramFilters"` // 处理器 Operator string `field:"operator"` // 操作符 Value string `field:"value"` // 对比值 IsCaseInsensitive uint8 `field:"isCaseInsensitive"` // 是否大小写不敏感 @@ -22,7 +22,7 @@ type HTTPFirewallRuleOperator struct { IsOn interface{} // 是否启用 Description interface{} // 说明 Param interface{} // 参数 - Filters interface{} // 处理器 + ParamFilters interface{} // 处理器 Operator interface{} // 操作符 Value interface{} // 对比值 IsCaseInsensitive interface{} // 是否大小写不敏感