diff --git a/internal/web/actions/default/servers/components/waf/policy.go b/internal/web/actions/default/servers/components/waf/policy.go index 937dfc9f..a7c8d51e 100644 --- a/internal/web/actions/default/servers/components/waf/policy.go +++ b/internal/web/actions/default/servers/components/waf/policy.go @@ -1,6 +1,7 @@ package waf import ( + "github.com/TeaOSLab/EdgeAdmin/internal/utils/numberutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/dao" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" @@ -86,18 +87,20 @@ func (this *PolicyAction) RunGet(params struct { } this.Data["firewallPolicy"] = maps.Map{ - "id": firewallPolicy.Id, - "name": firewallPolicy.Name, - "isOn": firewallPolicy.IsOn, - "description": firewallPolicy.Description, - "mode": firewallPolicy.Mode, - "modeInfo": firewallconfigs.FindFirewallMode(firewallPolicy.Mode), - "groups": internalGroups, - "blockOptions": firewallPolicy.BlockOptions, - "captchaOptions": firewallPolicy.CaptchaOptions, - "useLocalFirewall": firewallPolicy.UseLocalFirewall, - "synFlood": firewallPolicy.SYNFlood, - "log": firewallPolicy.Log, + "id": firewallPolicy.Id, + "name": firewallPolicy.Name, + "isOn": firewallPolicy.IsOn, + "description": firewallPolicy.Description, + "mode": firewallPolicy.Mode, + "modeInfo": firewallconfigs.FindFirewallMode(firewallPolicy.Mode), + "groups": internalGroups, + "blockOptions": firewallPolicy.BlockOptions, + "captchaOptions": firewallPolicy.CaptchaOptions, + "useLocalFirewall": firewallPolicy.UseLocalFirewall, + "synFlood": firewallPolicy.SYNFlood, + "log": firewallPolicy.Log, + "maxRequestBodySize": firewallPolicy.MaxRequestBodySize, + "maxRequestBodySizeFormat": numberutils.FormatBytes(firewallPolicy.MaxRequestBodySize), } // 正在使用此策略的集群 diff --git a/internal/web/actions/default/servers/components/waf/update.go b/internal/web/actions/default/servers/components/waf/update.go index 92a4b86e..092d9c70 100644 --- a/internal/web/actions/default/servers/components/waf/update.go +++ b/internal/web/actions/default/servers/components/waf/update.go @@ -9,6 +9,7 @@ import ( "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" + "github.com/iwind/TeaGo/types" "net/http" ) @@ -64,16 +65,17 @@ func (this *UpdateAction) RunGet(params struct { } this.Data["firewallPolicy"] = maps.Map{ - "id": firewallPolicy.Id, - "name": firewallPolicy.Name, - "description": firewallPolicy.Description, - "isOn": firewallPolicy.IsOn, - "mode": firewallPolicy.Mode, - "blockOptions": firewallPolicy.BlockOptions, - "captchaOptions": firewallPolicy.CaptchaOptions, - "useLocalFirewall": firewallPolicy.UseLocalFirewall, - "synFloodConfig": firewallPolicy.SYNFlood, - "log": firewallPolicy.Log, + "id": firewallPolicy.Id, + "name": firewallPolicy.Name, + "description": firewallPolicy.Description, + "isOn": firewallPolicy.IsOn, + "mode": firewallPolicy.Mode, + "blockOptions": firewallPolicy.BlockOptions, + "captchaOptions": firewallPolicy.CaptchaOptions, + "useLocalFirewall": firewallPolicy.UseLocalFirewall, + "synFloodConfig": firewallPolicy.SYNFlood, + "log": firewallPolicy.Log, + "maxRequestBodySize": types.String(firewallPolicy.MaxRequestBodySize), } // 预置分组 @@ -110,6 +112,7 @@ func (this *UpdateAction) RunPost(params struct { UseLocalFirewall bool SynFloodJSON []byte LogJSON []byte + MaxRequestBodySize int64 Must *actions.Must }) { @@ -134,6 +137,11 @@ func (this *UpdateAction) RunPost(params struct { this.Fail("验证码动作参数校验失败:" + err.Error()) } + // 最大内容尺寸 + if params.MaxRequestBodySize < 0 { + params.MaxRequestBodySize = 0 + } + _, err = this.RPC().HTTPFirewallPolicyRPC().UpdateHTTPFirewallPolicy(this.AdminContext(), &pb.UpdateHTTPFirewallPolicyRequest{ HttpFirewallPolicyId: params.FirewallPolicyId, IsOn: params.IsOn, @@ -146,6 +154,7 @@ func (this *UpdateAction) RunPost(params struct { UseLocalFirewall: params.UseLocalFirewall, SynFloodJSON: params.SynFloodJSON, LogJSON: params.LogJSON, + MaxRequestBodySize: params.MaxRequestBodySize, }) if err != nil { this.ErrorPage(err) diff --git a/web/views/@default/servers/components/waf/createPopup.html b/web/views/@default/servers/components/waf/createPopup.html index ac1dbc3a..e19c1f19 100644 --- a/web/views/@default/servers/components/waf/createPopup.html +++ b/web/views/@default/servers/components/waf/createPopup.html @@ -30,7 +30,7 @@