Skip to content

Commit 111df18

Browse files
committed
WAF策略支持搜索
1 parent bbcdf16 commit 111df18

2 files changed

Lines changed: 48 additions & 38 deletions

File tree

internal/db/models/http_firewall_policy_dao.go

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ func init() {
3737
})
3838
}
3939

40-
// 初始化
40+
// Init 初始化
4141
func (this *HTTPFirewallPolicyDAO) Init() {
4242
_ = this.DAOObject.Init()
4343
}
4444

45-
// 启用条目
45+
// EnableHTTPFirewallPolicy 启用条目
4646
func (this *HTTPFirewallPolicyDAO) EnableHTTPFirewallPolicy(tx *dbs.Tx, id int64) error {
4747
_, err := this.Query(tx).
4848
Pk(id).
@@ -51,7 +51,7 @@ func (this *HTTPFirewallPolicyDAO) EnableHTTPFirewallPolicy(tx *dbs.Tx, id int64
5151
return err
5252
}
5353

54-
// 禁用条目
54+
// DisableHTTPFirewallPolicy 禁用条目
5555
func (this *HTTPFirewallPolicyDAO) DisableHTTPFirewallPolicy(tx *dbs.Tx, policyId int64) error {
5656
_, err := this.Query(tx).
5757
Pk(policyId).
@@ -64,7 +64,7 @@ func (this *HTTPFirewallPolicyDAO) DisableHTTPFirewallPolicy(tx *dbs.Tx, policyI
6464
return this.NotifyUpdate(tx, policyId)
6565
}
6666

67-
// 查找启用中的条目
67+
// FindEnabledHTTPFirewallPolicy 查找启用中的条目
6868
func (this *HTTPFirewallPolicyDAO) FindEnabledHTTPFirewallPolicy(tx *dbs.Tx, id int64) (*HTTPFirewallPolicy, error) {
6969
result, err := this.Query(tx).
7070
Pk(id).
@@ -76,15 +76,15 @@ func (this *HTTPFirewallPolicyDAO) FindEnabledHTTPFirewallPolicy(tx *dbs.Tx, id
7676
return result.(*HTTPFirewallPolicy), err
7777
}
7878

79-
// 根据主键查找名称
79+
// FindHTTPFirewallPolicyName 根据主键查找名称
8080
func (this *HTTPFirewallPolicyDAO) FindHTTPFirewallPolicyName(tx *dbs.Tx, id int64) (string, error) {
8181
return this.Query(tx).
8282
Pk(id).
8383
Result("name").
8484
FindStringCol("")
8585
}
8686

87-
// 查找所有可用策略
87+
// FindAllEnabledFirewallPolicies 查找所有可用策略
8888
func (this *HTTPFirewallPolicyDAO) FindAllEnabledFirewallPolicies(tx *dbs.Tx) (result []*HTTPFirewallPolicy, err error) {
8989
_, err = this.Query(tx).
9090
State(HTTPFirewallPolicyStateEnabled).
@@ -94,7 +94,7 @@ func (this *HTTPFirewallPolicyDAO) FindAllEnabledFirewallPolicies(tx *dbs.Tx) (r
9494
return
9595
}
9696

97-
// 创建策略
97+
// CreateFirewallPolicy 创建策略
9898
func (this *HTTPFirewallPolicyDAO) CreateFirewallPolicy(tx *dbs.Tx, userId int64, serverId int64, isOn bool, name string, description string, inboundJSON []byte, outboundJSON []byte) (int64, error) {
9999
op := NewHTTPFirewallPolicyOperator()
100100
op.UserId = userId
@@ -113,7 +113,7 @@ func (this *HTTPFirewallPolicyDAO) CreateFirewallPolicy(tx *dbs.Tx, userId int64
113113
return types.Int64(op.Id), err
114114
}
115115

116-
// 修改策略的Inbound和Outbound
116+
// UpdateFirewallPolicyInboundAndOutbound 修改策略的Inbound和Outbound
117117
func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicyInboundAndOutbound(tx *dbs.Tx, policyId int64, inboundJSON []byte, outboundJSON []byte) error {
118118
if policyId <= 0 {
119119
return errors.New("invalid policyId")
@@ -138,7 +138,7 @@ func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicyInboundAndOutbound(tx *db
138138
return this.NotifyUpdate(tx, policyId)
139139
}
140140

141-
// 修改策略的Inbound
141+
// UpdateFirewallPolicyInbound 修改策略的Inbound
142142
func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicyInbound(tx *dbs.Tx, policyId int64, inboundJSON []byte) error {
143143
if policyId <= 0 {
144144
return errors.New("invalid policyId")
@@ -158,7 +158,7 @@ func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicyInbound(tx *dbs.Tx, polic
158158
return this.NotifyUpdate(tx, policyId)
159159
}
160160

161-
// 修改策略
161+
// UpdateFirewallPolicy 修改策略
162162
func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicy(tx *dbs.Tx, policyId int64, isOn bool, name string, description string, inboundJSON []byte, outboundJSON []byte, blockOptionsJSON []byte) error {
163163
if policyId <= 0 {
164164
return errors.New("invalid policyId")
@@ -189,18 +189,28 @@ func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicy(tx *dbs.Tx, policyId int
189189
return this.NotifyUpdate(tx, policyId)
190190
}
191191

192-
// 计算所有可用的策略数量
193-
func (this *HTTPFirewallPolicyDAO) CountAllEnabledFirewallPolicies(tx *dbs.Tx) (int64, error) {
194-
return this.Query(tx).
192+
// CountAllEnabledFirewallPolicies 计算所有可用的策略数量
193+
func (this *HTTPFirewallPolicyDAO) CountAllEnabledFirewallPolicies(tx *dbs.Tx, keyword string) (int64, error) {
194+
query := this.Query(tx)
195+
if len(keyword) > 0 {
196+
query.Where("(name LIKE :keyword)").
197+
Param("keyword", "%"+keyword+"%")
198+
}
199+
return query.
195200
State(HTTPFirewallPolicyStateEnabled).
196201
Attr("userId", 0).
197202
Attr("serverId", 0).
198203
Count()
199204
}
200205

201-
// 列出单页的策略
202-
func (this *HTTPFirewallPolicyDAO) ListEnabledFirewallPolicies(tx *dbs.Tx, offset int64, size int64) (result []*HTTPFirewallPolicy, err error) {
203-
_, err = this.Query(tx).
206+
// ListEnabledFirewallPolicies 列出单页的策略
207+
func (this *HTTPFirewallPolicyDAO) ListEnabledFirewallPolicies(tx *dbs.Tx, keyword string, offset int64, size int64) (result []*HTTPFirewallPolicy, err error) {
208+
query := this.Query(tx)
209+
if len(keyword) > 0 {
210+
query.Where("(name LIKE :keyword)").
211+
Param("keyword", "%"+keyword+"%")
212+
}
213+
_, err = query.
204214
State(HTTPFirewallPolicyStateEnabled).
205215
Attr("userId", 0).
206216
Attr("serverId", 0).
@@ -212,7 +222,7 @@ func (this *HTTPFirewallPolicyDAO) ListEnabledFirewallPolicies(tx *dbs.Tx, offse
212222
return
213223
}
214224

215-
// 组合策略配置
225+
// ComposeFirewallPolicy 组合策略配置
216226
func (this *HTTPFirewallPolicyDAO) ComposeFirewallPolicy(tx *dbs.Tx, policyId int64) (*firewallconfigs.HTTPFirewallPolicy, error) {
217227
policy, err := this.FindEnabledHTTPFirewallPolicy(tx, policyId)
218228
if err != nil {
@@ -297,7 +307,7 @@ func (this *HTTPFirewallPolicyDAO) ComposeFirewallPolicy(tx *dbs.Tx, policyId in
297307
return config, nil
298308
}
299309

300-
// 检查用户防火墙策略
310+
// CheckUserFirewallPolicy 检查用户防火墙策略
301311
func (this *HTTPFirewallPolicyDAO) CheckUserFirewallPolicy(tx *dbs.Tx, userId int64, firewallPolicyId int64) error {
302312
ok, err := this.Query(tx).
303313
Pk(firewallPolicyId).
@@ -315,7 +325,7 @@ func (this *HTTPFirewallPolicyDAO) CheckUserFirewallPolicy(tx *dbs.Tx, userId in
315325
return ErrNotFound
316326
}
317327

318-
// 查找包含某个IPList的所有策略
328+
// FindEnabledFirewallPolicyIdsWithIPListId 查找包含某个IPList的所有策略
319329
func (this *HTTPFirewallPolicyDAO) FindEnabledFirewallPolicyIdsWithIPListId(tx *dbs.Tx, ipListId int64) ([]int64, error) {
320330
ones, err := this.Query(tx).
321331
ResultPk().
@@ -333,7 +343,7 @@ func (this *HTTPFirewallPolicyDAO) FindEnabledFirewallPolicyIdsWithIPListId(tx *
333343
return result, nil
334344
}
335345

336-
// 查找包含某个规则分组的策略ID
346+
// FindEnabledFirewallPolicyIdWithRuleGroupId 查找包含某个规则分组的策略ID
337347
func (this *HTTPFirewallPolicyDAO) FindEnabledFirewallPolicyIdWithRuleGroupId(tx *dbs.Tx, ruleGroupId int64) (int64, error) {
338348
return this.Query(tx).
339349
ResultPk().
@@ -343,7 +353,7 @@ func (this *HTTPFirewallPolicyDAO) FindEnabledFirewallPolicyIdWithRuleGroupId(tx
343353
FindInt64Col(0)
344354
}
345355

346-
// 设置某个策略所属的服务ID
356+
// UpdateFirewallPolicyServerId 设置某个策略所属的服务ID
347357
func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicyServerId(tx *dbs.Tx, policyId int64, serverId int64) error {
348358
_, err := this.Query(tx).
349359
Pk(policyId).
@@ -352,7 +362,7 @@ func (this *HTTPFirewallPolicyDAO) UpdateFirewallPolicyServerId(tx *dbs.Tx, poli
352362
return err
353363
}
354364

355-
// 通知更新
365+
// NotifyUpdate 通知更新
356366
func (this *HTTPFirewallPolicyDAO) NotifyUpdate(tx *dbs.Tx, policyId int64) error {
357367
webIds, err := SharedHTTPWebDAO.FindAllWebIdsWithHTTPFirewallPolicyId(tx, policyId)
358368
if err != nil {

internal/rpc/services/service_http_firewall_policy.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ import (
1515
"net"
1616
)
1717

18-
// HTTP防火墙(WAF)相关服务
18+
// HTTPFirewallPolicyService HTTP防火墙(WAF)相关服务
1919
type HTTPFirewallPolicyService struct {
2020
BaseService
2121
}
2222

23-
// 获取所有可用策略
23+
// FindAllEnabledHTTPFirewallPolicies 获取所有可用策略
2424
func (this *HTTPFirewallPolicyService) FindAllEnabledHTTPFirewallPolicies(ctx context.Context, req *pb.FindAllEnabledHTTPFirewallPoliciesRequest) (*pb.FindAllEnabledHTTPFirewallPoliciesResponse, error) {
2525
// 校验请求
2626
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
@@ -50,7 +50,7 @@ func (this *HTTPFirewallPolicyService) FindAllEnabledHTTPFirewallPolicies(ctx co
5050
return &pb.FindAllEnabledHTTPFirewallPoliciesResponse{FirewallPolicies: result}, nil
5151
}
5252

53-
// 创建防火墙策略
53+
// CreateHTTPFirewallPolicy 创建防火墙策略
5454
func (this *HTTPFirewallPolicyService) CreateHTTPFirewallPolicy(ctx context.Context, req *pb.CreateHTTPFirewallPolicyRequest) (*pb.CreateHTTPFirewallPolicyResponse, error) {
5555
// 校验请求
5656
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
@@ -118,7 +118,7 @@ func (this *HTTPFirewallPolicyService) CreateHTTPFirewallPolicy(ctx context.Cont
118118
return &pb.CreateHTTPFirewallPolicyResponse{HttpFirewallPolicyId: policyId}, nil
119119
}
120120

121-
// 创建空防火墙策略
121+
// CreateEmptyHTTPFirewallPolicy 创建空防火墙策略
122122
func (this *HTTPFirewallPolicyService) CreateEmptyHTTPFirewallPolicy(ctx context.Context, req *pb.CreateEmptyHTTPFirewallPolicyRequest) (*pb.CreateEmptyHTTPFirewallPolicyResponse, error) {
123123
// 校验请求
124124
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
@@ -164,7 +164,7 @@ func (this *HTTPFirewallPolicyService) CreateEmptyHTTPFirewallPolicy(ctx context
164164
return &pb.CreateEmptyHTTPFirewallPolicyResponse{HttpFirewallPolicyId: policyId}, nil
165165
}
166166

167-
// 修改防火墙策略
167+
// UpdateHTTPFirewallPolicy 修改防火墙策略
168168
func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallPolicy(ctx context.Context, req *pb.UpdateHTTPFirewallPolicyRequest) (*pb.RPCSuccess, error) {
169169
// 校验请求
170170
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
@@ -292,7 +292,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallPolicy(ctx context.Cont
292292
return this.Success()
293293
}
294294

295-
// 修改分组信息
295+
// UpdateHTTPFirewallPolicyGroups 修改分组信息
296296
func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallPolicyGroups(ctx context.Context, req *pb.UpdateHTTPFirewallPolicyGroupsRequest) (*pb.RPCSuccess, error) {
297297
// 校验请求
298298
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
@@ -317,7 +317,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallPolicyGroups(ctx contex
317317
return this.Success()
318318
}
319319

320-
// 修改inbound信息
320+
// UpdateHTTPFirewallInboundConfig 修改inbound信息
321321
func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallInboundConfig(ctx context.Context, req *pb.UpdateHTTPFirewallInboundConfigRequest) (*pb.RPCSuccess, error) {
322322
// 校验请求
323323
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
@@ -342,7 +342,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallInboundConfig(ctx conte
342342
return this.Success()
343343
}
344344

345-
// 计算可用的防火墙策略数量
345+
// CountAllEnabledHTTPFirewallPolicies 计算可用的防火墙策略数量
346346
func (this *HTTPFirewallPolicyService) CountAllEnabledHTTPFirewallPolicies(ctx context.Context, req *pb.CountAllEnabledHTTPFirewallPoliciesRequest) (*pb.RPCCountResponse, error) {
347347
// 校验请求
348348
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
@@ -352,14 +352,14 @@ func (this *HTTPFirewallPolicyService) CountAllEnabledHTTPFirewallPolicies(ctx c
352352

353353
tx := this.NullTx()
354354

355-
count, err := models.SharedHTTPFirewallPolicyDAO.CountAllEnabledFirewallPolicies(tx)
355+
count, err := models.SharedHTTPFirewallPolicyDAO.CountAllEnabledFirewallPolicies(tx, req.Keyword)
356356
if err != nil {
357357
return nil, err
358358
}
359359
return this.SuccessCount(count)
360360
}
361361

362-
// 列出单页的防火墙策略
362+
// ListEnabledHTTPFirewallPolicies 列出单页的防火墙策略
363363
func (this *HTTPFirewallPolicyService) ListEnabledHTTPFirewallPolicies(ctx context.Context, req *pb.ListEnabledHTTPFirewallPoliciesRequest) (*pb.ListEnabledHTTPFirewallPoliciesResponse, error) {
364364
// 校验请求
365365
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
@@ -369,7 +369,7 @@ func (this *HTTPFirewallPolicyService) ListEnabledHTTPFirewallPolicies(ctx conte
369369

370370
tx := this.NullTx()
371371

372-
policies, err := models.SharedHTTPFirewallPolicyDAO.ListEnabledFirewallPolicies(tx, req.Offset, req.Size)
372+
policies, err := models.SharedHTTPFirewallPolicyDAO.ListEnabledFirewallPolicies(tx, req.Keyword, req.Offset, req.Size)
373373
if err != nil {
374374
return nil, err
375375
}
@@ -389,7 +389,7 @@ func (this *HTTPFirewallPolicyService) ListEnabledHTTPFirewallPolicies(ctx conte
389389
return &pb.ListEnabledHTTPFirewallPoliciesResponse{HttpFirewallPolicies: result}, nil
390390
}
391391

392-
// 删除某个防火墙策略
392+
// DeleteHTTPFirewallPolicy 删除某个防火墙策略
393393
func (this *HTTPFirewallPolicyService) DeleteHTTPFirewallPolicy(ctx context.Context, req *pb.DeleteHTTPFirewallPolicyRequest) (*pb.RPCSuccess, error) {
394394
// 校验请求
395395
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
@@ -407,7 +407,7 @@ func (this *HTTPFirewallPolicyService) DeleteHTTPFirewallPolicy(ctx context.Cont
407407
return this.Success()
408408
}
409409

410-
// 查找单个防火墙配置
410+
// FindEnabledHTTPFirewallPolicyConfig 查找单个防火墙配置
411411
func (this *HTTPFirewallPolicyService) FindEnabledHTTPFirewallPolicyConfig(ctx context.Context, req *pb.FindEnabledHTTPFirewallPolicyConfigRequest) (*pb.FindEnabledHTTPFirewallPolicyConfigResponse, error) {
412412
// 校验请求
413413
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
@@ -441,7 +441,7 @@ func (this *HTTPFirewallPolicyService) FindEnabledHTTPFirewallPolicyConfig(ctx c
441441
return &pb.FindEnabledHTTPFirewallPolicyConfigResponse{HttpFirewallPolicyJSON: configJSON}, nil
442442
}
443443

444-
// 获取防火墙的基本信息
444+
// FindEnabledHTTPFirewallPolicy 获取防火墙的基本信息
445445
func (this *HTTPFirewallPolicyService) FindEnabledHTTPFirewallPolicy(ctx context.Context, req *pb.FindEnabledHTTPFirewallPolicyRequest) (*pb.FindEnabledHTTPFirewallPolicyResponse, error) {
446446
// 校验请求
447447
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
@@ -475,7 +475,7 @@ func (this *HTTPFirewallPolicyService) FindEnabledHTTPFirewallPolicy(ctx context
475475
}}, nil
476476
}
477477

478-
// 导入策略数据
478+
// ImportHTTPFirewallPolicy 导入策略数据
479479
func (this *HTTPFirewallPolicyService) ImportHTTPFirewallPolicy(ctx context.Context, req *pb.ImportHTTPFirewallPolicyRequest) (*pb.RPCSuccess, error) {
480480
_, err := this.ValidateAdmin(ctx, 0)
481481
if err != nil {
@@ -633,7 +633,7 @@ func (this *HTTPFirewallPolicyService) ImportHTTPFirewallPolicy(ctx context.Cont
633633
return this.Success()
634634
}
635635

636-
// 检查IP状态
636+
// CheckHTTPFirewallPolicyIPStatus 检查IP状态
637637
func (this *HTTPFirewallPolicyService) CheckHTTPFirewallPolicyIPStatus(ctx context.Context, req *pb.CheckHTTPFirewallPolicyIPStatusRequest) (*pb.CheckHTTPFirewallPolicyIPStatusResponse, error) {
638638
_, err := this.ValidateAdmin(ctx, 0)
639639
if err != nil {

0 commit comments

Comments
 (0)