From 71dfea7e47eef3d89b0c4919d71a6ad58e35912d Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Tue, 3 Jan 2023 10:50:59 +0000 Subject: [chore] shuffle middleware to split rate limitting into client/s2s/fileserver, share gzip middleware globally (#1290) Signed-off-by: kim Signed-off-by: kim --- internal/api/activitypub.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'internal/api/activitypub.go') diff --git a/internal/api/activitypub.go b/internal/api/activitypub.go index 68c3b81e0..70b696834 100644 --- a/internal/api/activitypub.go +++ b/internal/api/activitypub.go @@ -22,6 +22,7 @@ import ( "context" "net/url" + "github.com/gin-gonic/gin" "github.com/superseriousbusiness/gotosocial/internal/api/activitypub/emoji" "github.com/superseriousbusiness/gotosocial/internal/api/activitypub/users" "github.com/superseriousbusiness/gotosocial/internal/db" @@ -37,20 +38,20 @@ type ActivityPub struct { isURIBlocked func(context.Context, *url.URL) (bool, db.Error) } -func (a *ActivityPub) Route(r router.Router) { +func (a *ActivityPub) Route(r router.Router, m ...gin.HandlerFunc) { // create groupings for the 'emoji' and 'users' prefixes emojiGroup := r.AttachGroup("emoji") usersGroup := r.AttachGroup("users") // instantiate + attach shared, non-global middlewares to both of these groups var ( - rateLimitMiddleware = middleware.RateLimit() // nolint:contextcheck signatureCheckMiddleware = middleware.SignatureCheck(a.isURIBlocked) - gzipMiddleware = middleware.Gzip() cacheControlMiddleware = middleware.CacheControl("no-store") ) - emojiGroup.Use(rateLimitMiddleware, signatureCheckMiddleware, gzipMiddleware, cacheControlMiddleware) - usersGroup.Use(rateLimitMiddleware, signatureCheckMiddleware, gzipMiddleware, cacheControlMiddleware) + emojiGroup.Use(m...) + usersGroup.Use(m...) + emojiGroup.Use(signatureCheckMiddleware, cacheControlMiddleware) + usersGroup.Use(signatureCheckMiddleware, cacheControlMiddleware) a.emoji.Route(emojiGroup.Handle) a.users.Route(usersGroup.Handle) -- cgit v1.2.3