35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
package middleware
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/config"
|
|
uc_user "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/user"
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/pkg/ratelimit"
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/pkg/security/jwt"
|
|
)
|
|
|
|
// Wire provider for middleware
|
|
|
|
func ProvideMiddleware(
|
|
logger *zap.Logger,
|
|
jwtProvider jwt.JWTProvider,
|
|
userGetByIDUseCase uc_user.UserGetByIDUseCase,
|
|
) Middleware {
|
|
return NewMiddleware(logger, jwtProvider, userGetByIDUseCase)
|
|
}
|
|
|
|
// ProvideRateLimitMiddleware provides the rate limit middleware for Wire DI
|
|
func ProvideRateLimitMiddleware(
|
|
logger *zap.Logger,
|
|
loginRateLimiter ratelimit.LoginRateLimiter,
|
|
) *RateLimitMiddleware {
|
|
return NewRateLimitMiddleware(logger, loginRateLimiter)
|
|
}
|
|
|
|
// ProvideSecurityHeadersMiddleware provides the security headers middleware for Wire DI
|
|
func ProvideSecurityHeadersMiddleware(
|
|
config *config.Config,
|
|
) *SecurityHeadersMiddleware {
|
|
return NewSecurityHeadersMiddleware(config)
|
|
}
|