From bf4d2c90bed26d65f3fad5edddeca35ad8046d46 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Fri, 12 Jul 2024 01:28:59 -0600 Subject: [PATCH] Re-orged middleware definition for more flexibility --- main.go | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/main.go b/main.go index 9084921..055e14b 100755 --- a/main.go +++ b/main.go @@ -51,31 +51,36 @@ func main() { log.Fatalf("Failed to initialize schema: %v", err) } - // Initialize Echo router and route groups + // ------------------------------ + // Middlewares: + // ------------------------------ + logMiddleware := middleware.Logger() + recoverMiddleware := middleware.Recover() + requestIDMiddleware := middleware.RequestID() + securityMiddleware := middleware.Secure() + gzipMiddleware := middleware.GzipWithConfig(middleware.GzipConfig{ + Level: 5, + }) + rateLimitMiddleware := middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(50)) + removeTrailingSlashMiddleware := middleware.RemoveTrailingSlash() + + // Initialize Echo router route groups e := echo.New() - publicPageRoute := e.Group("") - protectedPageRoute := e.Group("", lib.AuthenticatedPageMiddleware) - authFlowPageRoute := e.Group("", lib.AuthFlowPageMiddleware) + e.Pre(removeTrailingSlashMiddleware) + e.Use(logMiddleware) + e.Use(recoverMiddleware) + e.Use(requestIDMiddleware) + e.Use(securityMiddleware) + e.Use(rateLimitMiddleware) + e.Use(lib.InitSessionMiddleware()) + + publicPageRoute := e.Group("", gzipMiddleware) + protectedPageRoute := e.Group("", lib.AuthenticatedPageMiddleware, gzipMiddleware) + authFlowPageRoute := e.Group("", lib.AuthFlowPageMiddleware, gzipMiddleware) publicApiRoute := e.Group("/api") protectedApiRoute := e.Group("/api", lib.AuthenticatedEndpointMiddleware) webhookGroup := e.Group("/webhook") - // Initialize the session store - e.Use(lib.InitSessionMiddleware()) - - // ------------------------------ - // Middleware: - // ------------------------------ - e.Use(middleware.Logger()) - e.Use(middleware.Recover()) - e.Pre(middleware.RemoveTrailingSlash()) - e.Use(middleware.RequestID()) - e.Use(middleware.Secure()) - e.Use(middleware.GzipWithConfig(middleware.GzipConfig{ - Level: 5, - })) - e.Use(middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(50))) - // ------------------------------ // Static Server: // ------------------------------