defense

package
v0.0.0-...-4ea7438 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInDefense = errors.New("error of in defense")

ErrInDefense 定义处于防御模式需要拦截的错误

Functions

This section is empty.

Types

type SimpleDefense

type SimpleDefense struct {
	// contains filtered or unexported fields
}

SimpleDefense 简单防御实现结构

func New

func New(redis *redis.Client, defenseDuration time.Duration, defenseTimes int64) *SimpleDefense

New 创建一个简单实现的防暴力破解实例 @param redis go-redis/redis v7 对象示例 @param defenseDuration 默认防御间隔时长设置,譬如:1分钟内最大尝试次数不得超过5次,此处传值 1 * time.Minute @param defenseTimes 默认防御间隔次数设置,譬如:1分钟内最大尝试次数不得超过5次,此处传值 5

func (*SimpleDefense) Defense

func (s *SimpleDefense) Defense(defenseKey string) error

Defense 设置防御,未超过初始化条件设置防御成功返回nil,超过初始化条件设置防御失败返回error即触发了防御条件需要拦截 @param defenseKey 按默认初始化策略检测指定key防御

func (*SimpleDefense) DefenseCustom

func (s *SimpleDefense) DefenseCustom(defenseKey string, defenseDuration time.Duration, defenseTimes int64) error

DefenseCustom 设置自定义防御,未超过初始化条件设置防御成功返回nil,超过初始化条件设置防御失败返回error即触发了防御条件需要拦截 @param defenseKey 按自定义策略检测指定key防御 @param defenseDuration 防御策略有效期 @param defenseTimes 防御策略有效期内的最大次数

func (*SimpleDefense) Release

func (s *SimpleDefense) Release(defenseKey string)

Release 释放指定防御

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL