Documentation ¶
Index ¶
- Constants
- Variables
- func CounterAgent()
- func CounterClient(ruleNo int32, deny bool)
- func FrontDispatch(httpConnection *utility.HttpConnection)
- func FrontListen()
- func GetCurrentCounters() map[int32]*Counter
- func GetDateString(t time.Time) string
- func InitRedisPool()
- func IsIPAddress(s string) bool
- func NewConfig() *utility.Config
- func NewPolicyMD5() string
- func PolicyInterpreter(extStream string) error
- func PolicyLoader()
- func PolicyMD5Str() (string, error)
- func RuleUpdateLogic(request *utility.HttpRequest, logHandle *utility.Logger)
- func Run()
- func SavePid(pidFile string)
- func ToInteger64(s string) (int64, error)
- type CountMessage
- type Counter
- type FrontServer
- func (s *FrontServer) DoMonitorAlive(request *utility.HttpRequest, response *utility.HttpResponse, ...)
- func (s *FrontServer) DoMultiBrowse(request *utility.HttpRequest, response *utility.HttpResponse, ...)
- func (s *FrontServer) DoRuleBrowse(request *utility.HttpRequest, response *utility.HttpResponse, ...)
- func (s *FrontServer) DoRuleBrowseComplete(request *utility.HttpRequest, response *utility.HttpResponse, ...)
- func (s *FrontServer) DoRuleUpdate(request *utility.HttpRequest, response *utility.HttpResponse, ...)
- type GroupKey
- type Job
- type JobBuffer
- type JobResult
- type KoalaKey
- type Policy
- type RangeKey
- type RetValue
- type Rule
- type Scope
Constants ¶
const ( // ALLOW .允许 ALLOW = 1 // DENY 拒绝 DENY = 2 )
const (
// BaseKeySuffix base附加cache key的后缀;在getCacheKey()的key后追加
BaseKeySuffix = "_B"
)
Variables ¶
var ( // Config koala基本配置 Config *utility.Config // RedisPool 全局redis连接池 RedisPool *redis.Pool // PolicyMd5 . // 全局 md5 值 // 说明:定期检查 rule配置的变化,与此 md5 比较;实现动态更新规则 PolicyMd5 string // DynamicUpdateFiles . // 需要检查更新的文件列表 // 范围:rule 文件 + dicts 文件 // 赋值:每次reload规则时,将其中的 dicts 文件记录于此 DynamicUpdateFiles []string )
@Project: koala @Author: houseme @Description: @File: koala @Version: 1.0.0 @Date: 2021/7/13 00:16 @Package koala
var ( // PolicyCounter . PolicyCounter map[string]map[int32]*Counter // CountTransChannel . CountTransChannel chan *CountMessage )
Functions ¶
func PolicyInterpreter ¶
PolicyInterpreter Policy解释器,用于从文件解析配置,记录到 Policy 结构中
func PolicyLoader ¶
func PolicyLoader()
PolicyLoader . policy实时更新函数 说明:用于实时更新rule配置,解析过程调用PolicyInterpreter()处理
func PolicyMD5Str ¶
PolicyMD5Str 计算 DynamicUpdateFiles 所包含文件的 md5 值
func RuleUpdateLogic ¶
func RuleUpdateLogic(request *utility.HttpRequest, logHandle *utility.Logger)
RuleUpdateLogic 更新操作执行函数
func ToInteger64 ¶
ToInteger64 将代表ip地址、纯数字的string值 都统一转换成int64值
Types ¶
type CountMessage ¶
type CountMessage struct {
// contains filtered or unexported fields
}
CountMessage .
type FrontServer ¶
type FrontServer struct{}
FrontServer .
func (*FrontServer) DoMonitorAlive ¶
func (s *FrontServer) DoMonitorAlive(request *utility.HttpRequest, response *utility.HttpResponse, logHandle *utility.Logger)
DoMonitorAlive 监控连接redis是否成功
func (*FrontServer) DoMultiBrowse ¶
func (s *FrontServer) DoMultiBrowse(request *utility.HttpRequest, response *utility.HttpResponse, logHandle *utility.Logger)
DoMultiBrowse 多重浏览访问接口
func (*FrontServer) DoRuleBrowse ¶
func (s *FrontServer) DoRuleBrowse(request *utility.HttpRequest, response *utility.HttpResponse, logHandle *utility.Logger)
DoRuleBrowse 查询访问接口
func (*FrontServer) DoRuleBrowseComplete ¶
func (s *FrontServer) DoRuleBrowseComplete(request *utility.HttpRequest, response *utility.HttpResponse, logHandle *utility.Logger)
DoRuleBrowseComplete 非中断查询接口(可命中、并返回多条策略)
func (*FrontServer) DoRuleUpdate ¶
func (s *FrontServer) DoRuleUpdate(request *utility.HttpRequest, response *utility.HttpResponse, logHandle *utility.Logger)
DoRuleUpdate 更新访问接口
type GroupKey ¶
type GroupKey struct {
// contains filtered or unexported fields
}
GroupKey 集合 key 类型;满足 KoalaKey interface
type JobBuffer ¶
type JobBuffer struct { ID string // contains filtered or unexported fields }
JobBuffer .
type KoalaKey ¶
type KoalaKey interface {
// contains filtered or unexported methods
}
KoalaKey interface ;用于支持多种 key 类型
type Policy ¶
type Policy struct {
// contains filtered or unexported fields
}
Policy . 策略结构,包含:dicts词表、rule规则、retValue 返回值三种数据; 其中 rule 是主体,dicts、和 retValue 会被 rule引用到
type RangeKey ¶
type RangeKey struct {
// contains filtered or unexported fields
}
RangeKey 范围key;一个范围key可以包含多个范围区间
type RetValue ¶
type RetValue struct { RetType int32 RetCode int32 ErrNo int32 ErrMsg string StrReason string NeedVcode int32 VcodeLen int32 VcodeType int32 Other string Version int32 }
RetValue retValue数据类型