mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-08 03:00:26 +08:00
增加WAF策略日志设置
This commit is contained in:
@@ -354,6 +354,7 @@ func (this *HTTPAccessLogDAO) listAccessLogs(tx *dbs.Tx,
|
|||||||
|
|
||||||
// 准备查询
|
// 准备查询
|
||||||
var tableQueries = []*accessLogTableQuery{}
|
var tableQueries = []*accessLogTableQuery{}
|
||||||
|
var maxTableName = ""
|
||||||
for _, daoWrapper := range daoList {
|
for _, daoWrapper := range daoList {
|
||||||
var instance = daoWrapper.DAO.Instance
|
var instance = daoWrapper.DAO.Instance
|
||||||
def, err := SharedHTTPAccessLogManager.FindPartitionTable(instance, day, partition)
|
def, err := SharedHTTPAccessLogManager.FindPartitionTable(instance, day, partition)
|
||||||
@@ -364,6 +365,10 @@ func (this *HTTPAccessLogDAO) listAccessLogs(tx *dbs.Tx,
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(maxTableName) == 0 || def.Name > maxTableName {
|
||||||
|
maxTableName = def.Name
|
||||||
|
}
|
||||||
|
|
||||||
tableQueries = append(tableQueries, &accessLogTableQuery{
|
tableQueries = append(tableQueries, &accessLogTableQuery{
|
||||||
daoWrapper: daoWrapper,
|
daoWrapper: daoWrapper,
|
||||||
name: def.Name,
|
name: def.Name,
|
||||||
@@ -372,6 +377,18 @@ func (this *HTTPAccessLogDAO) listAccessLogs(tx *dbs.Tx,
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 检查各个分表是否一致
|
||||||
|
if partition < 0 {
|
||||||
|
var newTableQueries = []*accessLogTableQuery{}
|
||||||
|
for _, tableQuery := range tableQueries {
|
||||||
|
if tableQuery.name != maxTableName {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
newTableQueries = append(newTableQueries, tableQuery)
|
||||||
|
}
|
||||||
|
tableQueries = newTableQueries
|
||||||
|
}
|
||||||
|
|
||||||
if len(tableQueries) == 0 {
|
if len(tableQueries) == 0 {
|
||||||
return nil, "", nil
|
return nil, "", nil
|
||||||
}
|
}
|
||||||
@@ -606,7 +623,7 @@ func (this *HTTPAccessLogDAO) listAccessLogs(tx *dbs.Tx,
|
|||||||
|
|
||||||
locker.Lock()
|
locker.Lock()
|
||||||
for _, one := range ones {
|
for _, one := range ones {
|
||||||
accessLog := one.(*HTTPAccessLog)
|
var accessLog = one.(*HTTPAccessLog)
|
||||||
result = append(result, accessLog)
|
result = append(result, accessLog)
|
||||||
}
|
}
|
||||||
locker.Unlock()
|
locker.Unlock()
|
||||||
|
|||||||
@@ -260,7 +260,18 @@ func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicyInbound(tx *dbs.Tx, polic
|
|||||||
}
|
}
|
||||||
|
|
||||||
// UpdateFirewallPolicy 修改策略
|
// 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, useLocalFirewall bool, synFloodConfig *firewallconfigs.SYNFloodConfig) 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,
|
||||||
|
synFloodConfig *firewallconfigs.SYNFloodConfig,
|
||||||
|
logConfig *firewallconfigs.HTTPFirewallPolicyLogConfig) error {
|
||||||
if policyId <= 0 {
|
if policyId <= 0 {
|
||||||
return errors.New("invalid policyId")
|
return errors.New("invalid policyId")
|
||||||
}
|
}
|
||||||
@@ -294,6 +305,16 @@ func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicy(tx *dbs.Tx, policyId int
|
|||||||
op.SynFlood = "null"
|
op.SynFlood = "null"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if logConfig != nil {
|
||||||
|
logJSON, err := json.Marshal(logConfig)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
op.Log = logJSON
|
||||||
|
} else {
|
||||||
|
op.Log = "null"
|
||||||
|
}
|
||||||
|
|
||||||
op.UseLocalFirewall = useLocalFirewall
|
op.UseLocalFirewall = useLocalFirewall
|
||||||
err := this.Save(tx, op)
|
err := this.Save(tx, op)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -293,7 +293,15 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallPolicy(ctx context.Cont
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicy(tx, req.HttpFirewallPolicyId, req.IsOn, req.Name, req.Description, inboundConfigJSON, outboundConfigJSON, req.BlockOptionsJSON, req.Mode, req.UseLocalFirewall, synFloodConfig)
|
var logConfig = &firewallconfigs.HTTPFirewallPolicyLogConfig{}
|
||||||
|
if len(req.LogJSON) > 0 {
|
||||||
|
err = json.Unmarshal(req.LogJSON, logConfig)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicy(tx, req.HttpFirewallPolicyId, req.IsOn, req.Name, req.Description, inboundConfigJSON, outboundConfigJSON, req.BlockOptionsJSON, req.Mode, req.UseLocalFirewall, synFloodConfig, logConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user