WAF策略中的地区/省份封禁也支持自定义提示HTML

This commit is contained in:
GoEdgeLab
2023-08-10 09:52:01 +08:00
parent 0ee0f5b442
commit 04ae7d86b3
5 changed files with 39 additions and 1 deletions

View File

@@ -40,10 +40,13 @@ func (this *IndexAction) RunGet(params struct {
var deniedCountryIds = []int64{}
var allowedCountryIds = []int64{}
var countryHTML string
if policyConfig.Inbound != nil && policyConfig.Inbound.Region != nil {
deniedCountryIds = policyConfig.Inbound.Region.DenyCountryIds
allowedCountryIds = policyConfig.Inbound.Region.AllowCountryIds
countryHTML = policyConfig.Inbound.Region.CountryHTML
}
this.Data["countryHTML"] = countryHTML
countriesResp, err := this.RPC().RegionCountryRPC().FindAllRegionCountries(this.AdminContext(), &pb.FindAllRegionCountriesRequest{})
if err != nil {
@@ -91,6 +94,8 @@ func (this *IndexAction) RunPost(params struct {
ExceptURLPatternsJSON []byte
OnlyURLPatternsJSON []byte
CountryHTML string
Must *actions.Must
}) {
// 日志
@@ -128,6 +133,13 @@ func (this *IndexAction) RunPost(params struct {
}
policyConfig.Inbound.Region.CountryExceptURLPatterns = exceptURLPatterns
// 自定义提示
if len(params.CountryHTML) > 32<<10 {
this.Fail("提示内容长度不能超出32K")
return
}
policyConfig.Inbound.Region.CountryHTML = params.CountryHTML
// 限制URL
var onlyURLPatterns = []*shared.URLPattern{}
if len(params.OnlyURLPatternsJSON) > 0 {

View File

@@ -40,10 +40,13 @@ func (this *ProvincesAction) RunGet(params struct {
var deniedProvinceIds = []int64{}
var allowedProvinceIds = []int64{}
var provinceHTML string
if policyConfig.Inbound != nil && policyConfig.Inbound.Region != nil {
deniedProvinceIds = policyConfig.Inbound.Region.DenyProvinceIds
allowedProvinceIds = policyConfig.Inbound.Region.AllowProvinceIds
provinceHTML = policyConfig.Inbound.Region.ProvinceHTML
}
this.Data["provinceHTML"] = provinceHTML
provincesResp, err := this.RPC().RegionProvinceRPC().FindAllRegionProvincesWithRegionCountryId(this.AdminContext(), &pb.FindAllRegionProvincesWithRegionCountryIdRequest{
RegionCountryId: regionconfigs.RegionChinaId,
@@ -92,6 +95,8 @@ func (this *ProvincesAction) RunPost(params struct {
ExceptURLPatternsJSON []byte
OnlyURLPatternsJSON []byte
ProvinceHTML string
Must *actions.Must
}) {
// 日志
@@ -140,6 +145,13 @@ func (this *ProvincesAction) RunPost(params struct {
}
policyConfig.Inbound.Region.ProvinceOnlyURLPatterns = onlyURLPatterns
// 自定义提示
if len(params.ProvinceHTML) > 32<<10 {
this.Fail("提示内容长度不能超出32K")
return
}
policyConfig.Inbound.Region.ProvinceHTML = params.ProvinceHTML
inboundJSON, err := json.Marshal(policyConfig.Inbound)
if err != nil {
this.ErrorPage(err)

View File

@@ -158,11 +158,11 @@ func (this *ProvincesAction) RunPost(params struct {
}
policyConfig.Inbound.Region.ProvinceOnlyURLPatterns = onlyURLPatterns
// 自定义提示
if len(params.ProvinceHTML) > 32<<10 {
this.Fail("提示内容长度不能超出32K")
return
}
policyConfig.Inbound.Region.ProvinceHTML = params.ProvinceHTML
err = policyConfig.Init()