2020-10-06 21:02:21 +08:00
|
|
|
|
package firewallconfigs
|
|
|
|
|
|
|
|
|
|
|
|
type HTTPFirewallCaptchaAction struct {
|
2022-05-20 22:10:58 +08:00
|
|
|
|
IsPrior bool `yaml:"isPrior" json:"isPrior"`
|
2022-01-16 16:53:34 +08:00
|
|
|
|
|
2022-05-20 22:10:58 +08:00
|
|
|
|
Life int32 `yaml:"life" json:"life"` // 有效期
|
|
|
|
|
|
MaxFails int `yaml:"maxFails" json:"maxFails"` // 最大失败次数
|
|
|
|
|
|
FailBlockTimeout int `yaml:"failBlockTimeout" json:"failBlockTimeout"` // 失败拦截时间
|
|
|
|
|
|
FailBlockScopeAll bool `yaml:"failBlockScopeAll" json:"failBlockScopeAll"` // 是否全局有效
|
|
|
|
|
|
|
|
|
|
|
|
CountLetters int8 `yaml:"countLetters" json:"countLetters"` // 字符数量
|
|
|
|
|
|
|
|
|
|
|
|
UIIsOn bool `yaml:"uiIsOn" json:"uiIsOn"` // 是否使用自定义UI
|
|
|
|
|
|
UITitle string `yaml:"uiTitle" json:"uiTitle"` // 消息标题
|
|
|
|
|
|
UIPrompt string `yaml:"uiPrompt" json:"uiPrompt"` // 消息提示
|
|
|
|
|
|
UIButtonTitle string `yaml:"uiButtonTitle" json:"uiButtonTitle"` // 按钮标题
|
|
|
|
|
|
UIShowRequestId bool `yaml:"uiShowRequestId" json:"uiShowRequestId"` // 是否显示请求ID
|
|
|
|
|
|
UICss string `yaml:"uiCss" json:"uiCss"` // CSS样式
|
|
|
|
|
|
UIFooter string `yaml:"uiFooter" json:"uiFooter"` // 页脚
|
|
|
|
|
|
UIBody string `yaml:"uiBody" json:"uiBody"` // 内容轮廓
|
2022-01-16 16:53:34 +08:00
|
|
|
|
|
|
|
|
|
|
CookieId string `yaml:"cookieId" json:"cookieId"` // TODO
|
|
|
|
|
|
|
2022-05-20 22:10:58 +08:00
|
|
|
|
Lang string `yaml:"lang" json:"lang"` // 语言,zh-CN, en-US ... TODO 需要实现,目前是根据浏览器Accept-Language动态获取
|
2020-10-06 21:02:21 +08:00
|
|
|
|
}
|
2022-05-21 18:57:59 +08:00
|
|
|
|
|
|
|
|
|
|
func DefaultHTTPFirewallCaptchaAction() *HTTPFirewallCaptchaAction {
|
|
|
|
|
|
return &HTTPFirewallCaptchaAction{
|
|
|
|
|
|
Life: 600,
|
|
|
|
|
|
MaxFails: 100,
|
|
|
|
|
|
FailBlockTimeout: 3600,
|
|
|
|
|
|
FailBlockScopeAll: true,
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|