Documentation ¶
Index ¶
- func ApiLimitMiddleware(opts []ApiLimitOpt) gin.HandlerFunc
- func ExtractUserInfoMiddleware(logger *zap.SugaredLogger, jc *jwt.Client, data *data.Data) gin.HandlerFunc
- func IPLimitMiddleware(countPerSeconds int, limited func(c *gin.Context, ip string)) gin.HandlerFunc
- func LoggerMiddleware(apply func(fields *RouterLogFields)) gin.HandlerFunc
- func MustLoginMiddleware() gin.HandlerFunc
- func MustWithRoleMiddleware(needRole string) gin.HandlerFunc
- type ApiLimitOpt
- type IPRateLimiter
- type RouterLogFields
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApiLimitMiddleware ¶
func ApiLimitMiddleware(opts []ApiLimitOpt) gin.HandlerFunc
func ExtractUserInfoMiddleware ¶
func ExtractUserInfoMiddleware(logger *zap.SugaredLogger, jc *jwt.Client, data *data.Data) gin.HandlerFunc
ExtractUserInfoMiddleware just extract the user info from the request, and save it to the context.
func IPLimitMiddleware ¶
func LoggerMiddleware ¶
func LoggerMiddleware(apply func(fields *RouterLogFields)) gin.HandlerFunc
func MustLoginMiddleware ¶
func MustLoginMiddleware() gin.HandlerFunc
func MustWithRoleMiddleware ¶
func MustWithRoleMiddleware(needRole string) gin.HandlerFunc
Types ¶
type ApiLimitOpt ¶
type IPRateLimiter ¶
type IPRateLimiter struct {
// contains filtered or unexported fields
}
func NewIPRateLimiter ¶
func NewIPRateLimiter(countPerSeconds int) *IPRateLimiter
NewIPRateLimiter . func SetupIPRateLimiter(r rate.Limit, b int) (error) {
func (*IPRateLimiter) AddIP ¶
func (i *IPRateLimiter) AddIP(ip string) *rate.Limiter
AddIP creates a new rate limiter and adds it to the ips map, using the IP address as the key
func (*IPRateLimiter) GetLimiter ¶
func (i *IPRateLimiter) GetLimiter(ip string) *rate.Limiter
GetLimiter returns the rate limiter for the provided IP address if it exists. Otherwise calls AddIP to add IP address to the map
Click to show internal directories.
Click to hide internal directories.