add casbin rbac

This commit is contained in:
landaiqing
2024-08-23 11:36:41 +08:00
parent e0f0c4c466
commit 014abca8f8
17 changed files with 210 additions and 11 deletions

View File

@@ -0,0 +1,21 @@
package middleware
import (
"github.com/gin-gonic/gin"
"github.com/juju/ratelimit"
"schisandra-cloud-album/common/result"
"time"
)
func RateLimitMiddleware(fillInterval time.Duration, cap int64) func(c *gin.Context) {
bucket := ratelimit.NewBucket(fillInterval, cap)
return func(c *gin.Context) {
// 如果取不到令牌就中断本次请求返回 rate limit...
if bucket.TakeAvailable(1) < 1 {
result.FailWithMessage("rate limit...", c)
c.Abort()
return
}
c.Next()
}
}