|
@@ -3,22 +3,21 @@ package filterPoly
|
|
import (
|
|
import (
|
|
"app.yhyue.com/moapp/jybase/common"
|
|
"app.yhyue.com/moapp/jybase/common"
|
|
"app.yhyue.com/moapp/jybase/mongodb"
|
|
"app.yhyue.com/moapp/jybase/mongodb"
|
|
|
|
+ log "app.yhyue.com/moapp/jylog"
|
|
"bp.jydev.jianyu360.cn/BaseService/gateway/common/db"
|
|
"bp.jydev.jianyu360.cn/BaseService/gateway/common/db"
|
|
"fmt"
|
|
"fmt"
|
|
- "github.com/gogf/gf/v2/frame/g"
|
|
|
|
- "github.com/gogf/gf/v2/os/gctx"
|
|
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
)
|
|
)
|
|
|
|
|
|
-//syncBlackWhiteList 同步永久黑名单白名单
|
|
|
|
|
|
+// syncBlackWhiteList 同步永久黑名单白名单
|
|
func syncBlackWhiteList() {
|
|
func syncBlackWhiteList() {
|
|
mgSess := db.MgoJy.GetMgoConn()
|
|
mgSess := db.MgoJy.GetMgoConn()
|
|
defer func() {
|
|
defer func() {
|
|
db.MgoJy.DestoryMongoConn(mgSess)
|
|
db.MgoJy.DestoryMongoConn(mgSess)
|
|
}()
|
|
}()
|
|
- g.Log().Infof(gctx.New(), "开始同步黑白名单")
|
|
|
|
|
|
+ log.Info("开始同步黑白名单")
|
|
addBlackNum, addWhiteNum := 0, 0
|
|
addBlackNum, addWhiteNum := 0, 0
|
|
// 从用户表同步黑名单
|
|
// 从用户表同步黑名单
|
|
iter := mgSess.DB("qfw").C("user").Find(map[string]interface{}{"i_ban": 1}).Select(map[string]interface{}{"_id": 1}).Iter()
|
|
iter := mgSess.DB("qfw").C("user").Find(map[string]interface{}{"i_ban": 1}).Select(map[string]interface{}{"_id": 1}).Iter()
|
|
@@ -28,7 +27,7 @@ func syncBlackWhiteList() {
|
|
blackKey := fmt.Sprintf(BlackListKey, uid)
|
|
blackKey := fmt.Sprintf(BlackListKey, uid)
|
|
if !AllRedis.Exists(blackKey) {
|
|
if !AllRedis.Exists(blackKey) {
|
|
AllRedis.Set(blackKey, 1, -1)
|
|
AllRedis.Set(blackKey, 1, -1)
|
|
- g.Log().Infof(gctx.New(), "同步黑名单-加入%s", uid)
|
|
|
|
|
|
+ log.Infof("同步黑名单-加入%s", uid)
|
|
addBlackNum++
|
|
addBlackNum++
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -42,29 +41,29 @@ func syncBlackWhiteList() {
|
|
if key := fmt.Sprintf(WhiteListKey, value); status == 1 && !AllRedis.Exists(key) {
|
|
if key := fmt.Sprintf(WhiteListKey, value); status == 1 && !AllRedis.Exists(key) {
|
|
addWhiteNum++
|
|
addWhiteNum++
|
|
AllRedis.Set(key, 1, -1)
|
|
AllRedis.Set(key, 1, -1)
|
|
- g.Log().Infof(gctx.New(), "同步白名单-加入%s", value)
|
|
|
|
|
|
+ log.Info("同步白名单-加入%s", value)
|
|
} else if key := fmt.Sprintf(BlackListKey, value); status == -1 && !AllRedis.Exists(key) {
|
|
} else if key := fmt.Sprintf(BlackListKey, value); status == -1 && !AllRedis.Exists(key) {
|
|
addBlackNum++
|
|
addBlackNum++
|
|
AllRedis.Set(key, 1, -1)
|
|
AllRedis.Set(key, 1, -1)
|
|
- g.Log().Infof(gctx.New(), "同步黑名单-加入%s", value)
|
|
|
|
|
|
+ log.Info("同步黑名单-加入%s", value)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- g.Log().Infof(gctx.New(), "同步结束,共新增%d个黑名单,%d个白名单", addBlackNum, addWhiteNum)
|
|
|
|
|
|
+ log.Info("同步结束,共新增%d个黑名单,%d个白名单", addBlackNum, addWhiteNum)
|
|
}
|
|
}
|
|
|
|
|
|
-//checkBackList 查询是否在白名单中
|
|
|
|
|
|
+// checkBackList 查询是否在白名单中
|
|
func (a *ReqFilterPoly) checkWhiteList(k string) bool {
|
|
func (a *ReqFilterPoly) checkWhiteList(k string) bool {
|
|
return AllRedis.Get(fmt.Sprintf(WhiteListKey, k)) != nil
|
|
return AllRedis.Get(fmt.Sprintf(WhiteListKey, k)) != nil
|
|
}
|
|
}
|
|
|
|
|
|
-//checkBackList 查询是否在黑名单中
|
|
|
|
|
|
+// checkBackList 查询是否在黑名单中
|
|
func (a *ReqFilterPoly) checkBackList(k string) bool {
|
|
func (a *ReqFilterPoly) checkBackList(k string) bool {
|
|
return AllRedis.Get(fmt.Sprintf(BlackListKey, k)) != nil
|
|
return AllRedis.Get(fmt.Sprintf(BlackListKey, k)) != nil
|
|
}
|
|
}
|
|
|
|
|
|
-//addBackList 加入黑名单
|
|
|
|
|
|
+// addBackList 加入黑名单
|
|
func (a *ReqFilterPoly) addBackList(k, cause string) {
|
|
func (a *ReqFilterPoly) addBackList(k, cause string) {
|
|
timeLong := a.Rule.TempBlockTime
|
|
timeLong := a.Rule.TempBlockTime
|
|
blockTimes := a.Rule.IdMaxBlockTimes
|
|
blockTimes := a.Rule.IdMaxBlockTimes
|
|
@@ -74,7 +73,7 @@ func (a *ReqFilterPoly) addBackList(k, cause string) {
|
|
}
|
|
}
|
|
//统计临时黑名单次数,超过次数进入永久黑名单
|
|
//统计临时黑名单次数,超过次数进入永久黑名单
|
|
if !RateOk(fmt.Sprintf(BlackTimesKey, k), blockTimes[1], time.Duration(blockTimes[0])*time.Second) {
|
|
if !RateOk(fmt.Sprintf(BlackTimesKey, k), blockTimes[1], time.Duration(blockTimes[0])*time.Second) {
|
|
- g.Log().Infof(gctx.New(), "%s 多次进入临时黑名单,现转移至永久黑名单", k)
|
|
|
|
|
|
+ log.Infof("%s 多次进入临时黑名单,现转移至永久黑名单", k)
|
|
timeLong = -1
|
|
timeLong = -1
|
|
}
|
|
}
|
|
AllRedis.Set(fmt.Sprintf(BlackListKey, k), 1, timeLong)
|
|
AllRedis.Set(fmt.Sprintf(BlackListKey, k), 1, timeLong)
|