Documentation
¶
Overview ¶
Package middleware provides HTTP middleware components.
Index ¶
- Constants
- Variables
- func ErrorHandlerMiddleware() echo.MiddlewareFunc
- func Recovery(logger logging.Logger) echo.MiddlewareFunc
- type EchoLogger
- func (l *EchoLogger) Debug(i ...any)
- func (l *EchoLogger) Debugf(format string, args ...any)
- func (l *EchoLogger) Debugj(j log.JSON)
- func (l *EchoLogger) Error(i ...any)
- func (l *EchoLogger) Errorf(format string, args ...any)
- func (l *EchoLogger) Errorj(j log.JSON)
- func (l *EchoLogger) Fatal(i ...any)
- func (l *EchoLogger) Fatalf(format string, args ...any)
- func (l *EchoLogger) Fatalj(j log.JSON)
- func (l *EchoLogger) Info(i ...any)
- func (l *EchoLogger) Infof(format string, args ...any)
- func (l *EchoLogger) Infoj(j log.JSON)
- func (l *EchoLogger) Level() log.Lvl
- func (l *EchoLogger) Output() io.Writer
- func (l *EchoLogger) Panic(i ...any)
- func (l *EchoLogger) Panicf(format string, args ...any)
- func (l *EchoLogger) Panicj(j log.JSON)
- func (l *EchoLogger) Prefix() string
- func (l *EchoLogger) Print(i ...any)
- func (l *EchoLogger) Printf(format string, args ...any)
- func (l *EchoLogger) Printj(j log.JSON)
- func (l *EchoLogger) SetHeader(h string)
- func (l *EchoLogger) SetLevel(level log.Lvl)
- func (l *EchoLogger) SetOutput(w io.Writer)
- func (l *EchoLogger) SetPrefix(p string)
- func (l *EchoLogger) Warn(i ...any)
- func (l *EchoLogger) Warnf(format string, args ...any)
- func (l *EchoLogger) Warnj(j log.JSON)
- type EchoValidator
- type ErrorHandler
- type Manager
- type ManagerConfig
Constants ¶
const ( // NonceSize is the size of the nonce in bytes (32 bytes = 256 bits) NonceSize = 32 // HSTSOneYear is the number of seconds in one year HSTSOneYear = 31536000 // DefaultTokenLength is the default length for generated tokens DefaultTokenLength = 32 // RateLimitBurst is the number of requests allowed in a burst RateLimitBurst = 5 // DefaultRateLimit is the default number of requests allowed per second DefaultRateLimit = 20 // CookieMaxAge is the maximum age of cookies in seconds (24 hours) CookieMaxAge = 86400 // FieldPairSize represents the number of elements in a key-value pair FieldPairSize = 2 )
Variables ¶
var Module = fx.Options( fx.Provide( func(logger logging.Logger) *access.AccessManager { manager := access.NewAccessManager(access.DefaultRules()) logger.Debug("access manager initialized", "service", "access") return manager }, func( logger logging.Logger, cfg *config.Config, lc fx.Lifecycle, accessManager *access.AccessManager, ) *session.Manager { sessionConfig := &session.SessionConfig{ Config: cfg, SessionConfig: &cfg.Session, PublicPaths: []string{ "/login", "/signup", "/forgot-password", "/reset-password", "/health", "/metrics", "/demo", }, ExemptPaths: []string{ "/api/v1/validation", "/api/v1/validation/login", "/api/v1/validation/signup", "/api/v1/public", "/api/v1/health", "/api/v1/metrics", }, StaticPaths: []string{ "/static", "/assets", "/images", "/css", "/js", "/favicon.ico", }, } return session.NewManager(logger, sessionConfig, lc, accessManager) }, ), )
Module provides middleware dependencies
Functions ¶
func ErrorHandlerMiddleware ¶ added in v0.1.5
func ErrorHandlerMiddleware() echo.MiddlewareFunc
ErrorHandlerMiddleware is a middleware that handles errors
Types ¶
type EchoLogger ¶ added in v0.1.5
type EchoLogger struct {
// contains filtered or unexported fields
}
EchoLogger implements echo.Logger interface using our custom logger
func (*EchoLogger) Debug ¶ added in v0.1.5
func (l *EchoLogger) Debug(i ...any)
func (*EchoLogger) Debugf ¶ added in v0.1.5
func (l *EchoLogger) Debugf(format string, args ...any)
func (*EchoLogger) Debugj ¶ added in v0.1.5
func (l *EchoLogger) Debugj(j log.JSON)
func (*EchoLogger) Error ¶ added in v0.1.5
func (l *EchoLogger) Error(i ...any)
func (*EchoLogger) Errorf ¶ added in v0.1.5
func (l *EchoLogger) Errorf(format string, args ...any)
func (*EchoLogger) Errorj ¶ added in v0.1.5
func (l *EchoLogger) Errorj(j log.JSON)
func (*EchoLogger) Fatal ¶ added in v0.1.5
func (l *EchoLogger) Fatal(i ...any)
func (*EchoLogger) Fatalf ¶ added in v0.1.5
func (l *EchoLogger) Fatalf(format string, args ...any)
func (*EchoLogger) Fatalj ¶ added in v0.1.5
func (l *EchoLogger) Fatalj(j log.JSON)
func (*EchoLogger) Info ¶ added in v0.1.5
func (l *EchoLogger) Info(i ...any)
func (*EchoLogger) Infof ¶ added in v0.1.5
func (l *EchoLogger) Infof(format string, args ...any)
func (*EchoLogger) Infoj ¶ added in v0.1.5
func (l *EchoLogger) Infoj(j log.JSON)
func (*EchoLogger) Level ¶ added in v0.1.5
func (l *EchoLogger) Level() log.Lvl
func (*EchoLogger) Output ¶ added in v0.1.5
func (l *EchoLogger) Output() io.Writer
func (*EchoLogger) Panic ¶ added in v0.1.5
func (l *EchoLogger) Panic(i ...any)
func (*EchoLogger) Panicf ¶ added in v0.1.5
func (l *EchoLogger) Panicf(format string, args ...any)
func (*EchoLogger) Panicj ¶ added in v0.1.5
func (l *EchoLogger) Panicj(j log.JSON)
func (*EchoLogger) Prefix ¶ added in v0.1.5
func (l *EchoLogger) Prefix() string
func (*EchoLogger) Print ¶ added in v0.1.5
func (l *EchoLogger) Print(i ...any)
func (*EchoLogger) Printf ¶ added in v0.1.5
func (l *EchoLogger) Printf(format string, args ...any)
func (*EchoLogger) Printj ¶ added in v0.1.5
func (l *EchoLogger) Printj(j log.JSON)
func (*EchoLogger) SetHeader ¶ added in v0.1.5
func (l *EchoLogger) SetHeader(h string)
func (*EchoLogger) SetLevel ¶ added in v0.1.5
func (l *EchoLogger) SetLevel(level log.Lvl)
func (*EchoLogger) SetOutput ¶ added in v0.1.5
func (l *EchoLogger) SetOutput(w io.Writer)
func (*EchoLogger) SetPrefix ¶ added in v0.1.5
func (l *EchoLogger) SetPrefix(p string)
func (*EchoLogger) Warn ¶ added in v0.1.5
func (l *EchoLogger) Warn(i ...any)
func (*EchoLogger) Warnf ¶ added in v0.1.5
func (l *EchoLogger) Warnf(format string, args ...any)
func (*EchoLogger) Warnj ¶ added in v0.1.5
func (l *EchoLogger) Warnj(j log.JSON)
type EchoValidator ¶
type EchoValidator struct {
// contains filtered or unexported fields
}
EchoValidator wraps the infrastructure validator to implement Echo's Validator interface.
func NewValidator ¶
func NewValidator() (*EchoValidator, error)
NewValidator creates a new Echo validator
func (*EchoValidator) Validate ¶
func (v *EchoValidator) Validate(i any) error
Validate implements echo.Validator interface.
type ErrorHandler ¶ added in v0.2.0
type ErrorHandler struct {
// contains filtered or unexported fields
}
ErrorHandler handles errors and returns appropriate HTTP responses
func NewErrorHandler ¶ added in v0.2.0
func NewErrorHandler(logger logging.Logger) *ErrorHandler
NewErrorHandler creates a new error handler
func (*ErrorHandler) Handle ¶ added in v0.2.0
func (h *ErrorHandler) Handle(err error, c echo.Context)
Handle handles errors and returns appropriate HTTP responses
func (*ErrorHandler) Middleware ¶ added in v0.2.0
func (h *ErrorHandler) Middleware() echo.MiddlewareFunc
Middleware returns the error handler middleware function
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles middleware configuration and setup
func NewManager ¶ added in v0.1.5
func NewManager(cfg *ManagerConfig) *Manager
NewManager creates a new middleware manager
func (*Manager) GetSessionManager ¶ added in v0.1.5
GetSessionManager returns the session manager
type ManagerConfig ¶
type ManagerConfig struct { Logger logging.Logger Security *appconfig.SecurityConfig UserService user.Service Config *appconfig.Config SessionManager *session.Manager AccessManager *access.AccessManager }
ManagerConfig represents the configuration for the middleware manager