mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 07:50:25 +08:00 
			
		
		
		
	WAF策略增加是否使用本地防火墙设置
This commit is contained in:
		@@ -249,7 +249,7 @@ func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicyInbound(tx *dbs.Tx, polic
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UpdateFirewallPolicy 修改策略
 | 
			
		||||
func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicy(tx *dbs.Tx, policyId int64, isOn bool, name string, description string, inboundJSON []byte, outboundJSON []byte, blockOptionsJSON []byte, mode firewallconfigs.FirewallMode) error {
 | 
			
		||||
func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicy(tx *dbs.Tx, policyId int64, isOn bool, name string, description string, inboundJSON []byte, outboundJSON []byte, blockOptionsJSON []byte, mode firewallconfigs.FirewallMode, useLocalFirewall bool) error {
 | 
			
		||||
	if policyId <= 0 {
 | 
			
		||||
		return errors.New("invalid policyId")
 | 
			
		||||
	}
 | 
			
		||||
@@ -272,6 +272,7 @@ func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicy(tx *dbs.Tx, policyId int
 | 
			
		||||
	if len(blockOptionsJSON) > 0 {
 | 
			
		||||
		op.BlockOptions = blockOptionsJSON
 | 
			
		||||
	}
 | 
			
		||||
	op.UseLocalFirewall = useLocalFirewall
 | 
			
		||||
	err := this.Save(tx, op)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
@@ -339,6 +340,7 @@ func (this *HTTPFirewallPolicyDAO) ComposeFirewallPolicy(tx *dbs.Tx, policyId in
 | 
			
		||||
	config.IsOn = policy.IsOn == 1
 | 
			
		||||
	config.Name = policy.Name
 | 
			
		||||
	config.Description = policy.Description
 | 
			
		||||
	config.UseLocalFirewall = policy.UseLocalFirewall == 1
 | 
			
		||||
 | 
			
		||||
	if len(policy.Mode) == 0 {
 | 
			
		||||
		policy.Mode = firewallconfigs.FirewallModeDefend
 | 
			
		||||
 
 | 
			
		||||
@@ -2,39 +2,41 @@ package models
 | 
			
		||||
 | 
			
		||||
// HTTPFirewallPolicy HTTP防火墙
 | 
			
		||||
type HTTPFirewallPolicy struct {
 | 
			
		||||
	Id           uint32 `field:"id"`           // ID
 | 
			
		||||
	TemplateId   uint32 `field:"templateId"`   // 模版ID
 | 
			
		||||
	AdminId      uint32 `field:"adminId"`      // 管理员ID
 | 
			
		||||
	UserId       uint32 `field:"userId"`       // 用户ID
 | 
			
		||||
	ServerId     uint32 `field:"serverId"`     // 服务ID
 | 
			
		||||
	GroupId      uint32 `field:"groupId"`      // 服务分组ID
 | 
			
		||||
	State        uint8  `field:"state"`        // 状态
 | 
			
		||||
	CreatedAt    uint64 `field:"createdAt"`    // 创建时间
 | 
			
		||||
	IsOn         uint8  `field:"isOn"`         // 是否启用
 | 
			
		||||
	Name         string `field:"name"`         // 名称
 | 
			
		||||
	Description  string `field:"description"`  // 描述
 | 
			
		||||
	Inbound      string `field:"inbound"`      // 入站规则
 | 
			
		||||
	Outbound     string `field:"outbound"`     // 出站规则
 | 
			
		||||
	BlockOptions string `field:"blockOptions"` // BLOCK选项
 | 
			
		||||
	Mode         string `field:"mode"`         // 模式
 | 
			
		||||
	Id               uint32 `field:"id"`               // ID
 | 
			
		||||
	TemplateId       uint32 `field:"templateId"`       // 模版ID
 | 
			
		||||
	AdminId          uint32 `field:"adminId"`          // 管理员ID
 | 
			
		||||
	UserId           uint32 `field:"userId"`           // 用户ID
 | 
			
		||||
	ServerId         uint32 `field:"serverId"`         // 服务ID
 | 
			
		||||
	GroupId          uint32 `field:"groupId"`          // 服务分组ID
 | 
			
		||||
	State            uint8  `field:"state"`            // 状态
 | 
			
		||||
	CreatedAt        uint64 `field:"createdAt"`        // 创建时间
 | 
			
		||||
	IsOn             uint8  `field:"isOn"`             // 是否启用
 | 
			
		||||
	Name             string `field:"name"`             // 名称
 | 
			
		||||
	Description      string `field:"description"`      // 描述
 | 
			
		||||
	Inbound          string `field:"inbound"`          // 入站规则
 | 
			
		||||
	Outbound         string `field:"outbound"`         // 出站规则
 | 
			
		||||
	BlockOptions     string `field:"blockOptions"`     // BLOCK选项
 | 
			
		||||
	Mode             string `field:"mode"`             // 模式
 | 
			
		||||
	UseLocalFirewall uint8  `field:"useLocalFirewall"` // 是否自动使用本地防火墙
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type HTTPFirewallPolicyOperator struct {
 | 
			
		||||
	Id           interface{} // ID
 | 
			
		||||
	TemplateId   interface{} // 模版ID
 | 
			
		||||
	AdminId      interface{} // 管理员ID
 | 
			
		||||
	UserId       interface{} // 用户ID
 | 
			
		||||
	ServerId     interface{} // 服务ID
 | 
			
		||||
	GroupId      interface{} // 服务分组ID
 | 
			
		||||
	State        interface{} // 状态
 | 
			
		||||
	CreatedAt    interface{} // 创建时间
 | 
			
		||||
	IsOn         interface{} // 是否启用
 | 
			
		||||
	Name         interface{} // 名称
 | 
			
		||||
	Description  interface{} // 描述
 | 
			
		||||
	Inbound      interface{} // 入站规则
 | 
			
		||||
	Outbound     interface{} // 出站规则
 | 
			
		||||
	BlockOptions interface{} // BLOCK选项
 | 
			
		||||
	Mode         interface{} // 模式
 | 
			
		||||
	Id               interface{} // ID
 | 
			
		||||
	TemplateId       interface{} // 模版ID
 | 
			
		||||
	AdminId          interface{} // 管理员ID
 | 
			
		||||
	UserId           interface{} // 用户ID
 | 
			
		||||
	ServerId         interface{} // 服务ID
 | 
			
		||||
	GroupId          interface{} // 服务分组ID
 | 
			
		||||
	State            interface{} // 状态
 | 
			
		||||
	CreatedAt        interface{} // 创建时间
 | 
			
		||||
	IsOn             interface{} // 是否启用
 | 
			
		||||
	Name             interface{} // 名称
 | 
			
		||||
	Description      interface{} // 描述
 | 
			
		||||
	Inbound          interface{} // 入站规则
 | 
			
		||||
	Outbound         interface{} // 出站规则
 | 
			
		||||
	BlockOptions     interface{} // BLOCK选项
 | 
			
		||||
	Mode             interface{} // 模式
 | 
			
		||||
	UseLocalFirewall interface{} // 是否自动使用本地防火墙
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewHTTPFirewallPolicyOperator() *HTTPFirewallPolicyOperator {
 | 
			
		||||
 
 | 
			
		||||
@@ -37,13 +37,14 @@ func (this *HTTPFirewallPolicyService) FindAllEnabledHTTPFirewallPolicies(ctx co
 | 
			
		||||
	result := []*pb.HTTPFirewallPolicy{}
 | 
			
		||||
	for _, p := range policies {
 | 
			
		||||
		result = append(result, &pb.HTTPFirewallPolicy{
 | 
			
		||||
			Id:           int64(p.Id),
 | 
			
		||||
			Name:         p.Name,
 | 
			
		||||
			Description:  p.Description,
 | 
			
		||||
			IsOn:         p.IsOn == 1,
 | 
			
		||||
			InboundJSON:  []byte(p.Inbound),
 | 
			
		||||
			OutboundJSON: []byte(p.Outbound),
 | 
			
		||||
			Mode:         p.Mode,
 | 
			
		||||
			Id:               int64(p.Id),
 | 
			
		||||
			Name:             p.Name,
 | 
			
		||||
			Description:      p.Description,
 | 
			
		||||
			IsOn:             p.IsOn == 1,
 | 
			
		||||
			InboundJSON:      []byte(p.Inbound),
 | 
			
		||||
			OutboundJSON:     []byte(p.Outbound),
 | 
			
		||||
			Mode:             p.Mode,
 | 
			
		||||
			UseLocalFirewall: p.UseLocalFirewall == 1,
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -284,7 +285,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallPolicy(ctx context.Cont
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicy(tx, req.HttpFirewallPolicyId, req.IsOn, req.Name, req.Description, inboundConfigJSON, outboundConfigJSON, req.BlockOptionsJSON, req.Mode)
 | 
			
		||||
	err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicy(tx, req.HttpFirewallPolicyId, req.IsOn, req.Name, req.Description, inboundConfigJSON, outboundConfigJSON, req.BlockOptionsJSON, req.Mode, req.UseLocalFirewall)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -377,13 +378,14 @@ func (this *HTTPFirewallPolicyService) ListEnabledHTTPFirewallPolicies(ctx conte
 | 
			
		||||
	result := []*pb.HTTPFirewallPolicy{}
 | 
			
		||||
	for _, p := range policies {
 | 
			
		||||
		result = append(result, &pb.HTTPFirewallPolicy{
 | 
			
		||||
			Id:           int64(p.Id),
 | 
			
		||||
			Name:         p.Name,
 | 
			
		||||
			Description:  p.Description,
 | 
			
		||||
			IsOn:         p.IsOn == 1,
 | 
			
		||||
			InboundJSON:  []byte(p.Inbound),
 | 
			
		||||
			OutboundJSON: []byte(p.Outbound),
 | 
			
		||||
			Mode:         p.Mode,
 | 
			
		||||
			Id:               int64(p.Id),
 | 
			
		||||
			Name:             p.Name,
 | 
			
		||||
			Description:      p.Description,
 | 
			
		||||
			IsOn:             p.IsOn == 1,
 | 
			
		||||
			InboundJSON:      []byte(p.Inbound),
 | 
			
		||||
			OutboundJSON:     []byte(p.Outbound),
 | 
			
		||||
			Mode:             p.Mode,
 | 
			
		||||
			UseLocalFirewall: p.UseLocalFirewall == 1,
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user