Initial commit (code only without large binaries)
This commit is contained in:
41
EdgeCommon/pkg/systemconfigs/security_config.go
Normal file
41
EdgeCommon/pkg/systemconfigs/security_config.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package systemconfigs
|
||||
|
||||
import "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
|
||||
|
||||
// SecurityConfig 安全相关配置
|
||||
type SecurityConfig struct {
|
||||
Frame string `json:"frame"` // Frame嵌套
|
||||
AllowCountryIds []int64 `json:"allowCountryIds"` // 允许的国家/地区
|
||||
AllowProvinceIds []int64 `json:"allowProvinceIds"` // 允许的省份
|
||||
AllowLocal bool `json:"allowLocal"` // 允许本地+局域网IP访问
|
||||
AllowIPs []string `json:"allowIPs"` // 允许访问的IP
|
||||
AllowRememberLogin bool `json:"allowRememberLogin"` // 是否允许在设备上记住登录
|
||||
DenySearchEngines bool `json:"denySearchEngines"` // 禁止常见的搜索引擎访问
|
||||
DenySpiders bool `json:"denySpiders"` // 禁止常见的爬虫
|
||||
AllowDomains []string `json:"allowDomains"` // 允许访问的域名
|
||||
CheckClientFingerprint bool `json:"checkClientFingerprint"` // 在登录状态下检查客户端指纹
|
||||
CheckClientRegion bool `json:"checkClientRegion"` // 在登录状态下检查客户端区域
|
||||
|
||||
ClientIPHeaderNames string `json:"clientIPHeaderNames"` // 客户端IP获取报头名称列表
|
||||
ClientIPHeaderOnly bool `json:"clientIPHeaderOnly"` // 是否仅从报头中获取IP
|
||||
|
||||
allowIPRanges []*shared.IPRangeConfig
|
||||
}
|
||||
|
||||
// Init 初始化
|
||||
func (this *SecurityConfig) Init() error {
|
||||
this.allowIPRanges = []*shared.IPRangeConfig{}
|
||||
for _, allowIP := range this.AllowIPs {
|
||||
r, err := shared.ParseIPRange(allowIP)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
this.allowIPRanges = append(this.allowIPRanges, r)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// AllowIPRanges 查询允许的IP区域
|
||||
func (this *SecurityConfig) AllowIPRanges() []*shared.IPRangeConfig {
|
||||
return this.allowIPRanges
|
||||
}
|
||||
Reference in New Issue
Block a user