实现UA名单功能

This commit is contained in:
GoEdgeLab
2022-12-30 20:49:20 +08:00
parent a8d2b21ac4
commit 04fb9929a8
5 changed files with 111 additions and 2 deletions

View File

@@ -468,6 +468,16 @@ func (this *HTTPWebDAO) ComposeWebConfig(tx *dbs.Tx, webId int64, cacheMap *util
config.Referers = referersConfig
}
// User-Agent
if IsNotNull(web.UserAgent) {
var userAgentConfig = serverconfigs.NewUserAgentConfig()
err = json.Unmarshal(web.UserAgent, userAgentConfig)
if err != nil {
return nil, err
}
config.UserAgent = userAgentConfig
}
if cacheMap != nil {
cacheMap.Put(cacheKey, config)
}
@@ -1252,6 +1262,35 @@ func (this *HTTPWebDAO) FindWebReferers(tx *dbs.Tx, webId int64) ([]byte, error)
FindJSONCol()
}
// UpdateWebUserAgent 修改User-Agent设置
func (this *HTTPWebDAO) UpdateWebUserAgent(tx *dbs.Tx, webId int64, userAgentConfig *serverconfigs.UserAgentConfig) error {
if userAgentConfig == nil {
return nil
}
configJSON, err := json.Marshal(userAgentConfig)
if err != nil {
return err
}
err = this.Query(tx).
Pk(webId).
Set("userAgent", configJSON).
UpdateQuickly()
if err != nil {
return err
}
return this.NotifyUpdate(tx, webId)
}
// FindWebUserAgent 查找服务User-Agent配置
func (this *HTTPWebDAO) FindWebUserAgent(tx *dbs.Tx, webId int64) ([]byte, error) {
return this.Query(tx).
Pk(webId).
Result("userAgent").
FindJSONCol()
}
// NotifyUpdate 通知更新
func (this *HTTPWebDAO) NotifyUpdate(tx *dbs.Tx, webId int64) error {
// server

View File

@@ -39,6 +39,7 @@ type HTTPWeb struct {
RequestScripts dbs.JSON `field:"requestScripts"` // 请求脚本
Uam dbs.JSON `field:"uam"` // UAM设置
Referers dbs.JSON `field:"referers"` // 防盗链设置
UserAgent dbs.JSON `field:"userAgent"` // UserAgent设置
}
type HTTPWebOperator struct {
@@ -77,6 +78,7 @@ type HTTPWebOperator struct {
RequestScripts any // 请求脚本
Uam any // UAM设置
Referers any // 防盗链设置
UserAgent any // UserAgent设置
}
func NewHTTPWebOperator() *HTTPWebOperator {