Versions in this module Expand all Collapse all v0 v0.1.0 Jan 17, 2026 Changes in this version + func BodyLimit(maxBytes int64) bebo.Middleware + func CORS(options CORSOptions) bebo.Middleware + func CSRF(options CSRFOptions) bebo.Middleware + func CSRFToken(ctx *bebo.Context) string + func CacheControl(value string) bebo.Middleware + func ETag(options ETagOptions) bebo.Middleware + func Gzip(level int) bebo.Middleware + func IPFilter(options IPFilterOptions) (bebo.Middleware, error) + func JWT(options JWTOptions) bebo.Middleware + func Logger() bebo.Middleware + func LoggerWith(fields ...LogField) bebo.Middleware + func LoggerWithOptions(options LoggerOptions) bebo.Middleware + func MethodOverride(options MethodOverrideOptions) bebo.PreMiddleware + func Metrics(registry *metrics.Registry) bebo.Middleware + func MetricsWithOptions(options MetricsOptions) bebo.Middleware + func RateLimit(limiter *Limiter, options ...RateLimitOption) bebo.Middleware + func RateLimitWith(allow AllowFunc, options ...RateLimitOption) bebo.Middleware + func Recover() bebo.Middleware + func RequestContext() bebo.Middleware + func RequestID() bebo.Middleware + func RequireAuth(auth bebo.Authenticator, options ...AuthOption) bebo.Middleware + func RequireAuthorization(auth bebo.Authenticator, authorizer bebo.Authorizer, options ...AuthOption) bebo.Middleware + func RequireJWT(authenticator auth.JWTAuthenticator, options ...AuthOption) bebo.Middleware + func SecurityHeaders(options SecurityHeadersOptions) bebo.Middleware + func Session(store session.Store, options ...SessionOption) bebo.Middleware + func SessionFromContext(ctx *bebo.Context) (*session.Session, bool) + func SetSession(ctx *bebo.Context, sess *session.Session) + func Timeout(duration time.Duration) bebo.Middleware + func Trace(tracer Tracer) bebo.Middleware + func TraceWithOptions(options TraceOptions) bebo.Middleware + type AllowFunc func(*bebo.Context, string) (bool, error) + type AuthOption func(*authConfig) + func AuthForbiddenMessage(message string) AuthOption + func AuthUnauthorizedMessage(message string) AuthOption + type CORSOptions struct + AllowCredentials bool + AllowedHeaders []string + AllowedMethods []string + AllowedOrigins []string + ExposedHeaders []string + MaxAge time.Duration + type CSRFOptions struct + CookieHTTPOnly bool + CookieName string + CookiePath string + CookieSameSite http.SameSite + CookieSecure bool + DisableDefaults bool + FormField string + HeaderName string + Rotate bool + TokenLength int + type ETagOptions struct + MaxSize int64 + Weak bool + type ErrorHandler func(*bebo.Context, error) error + type IPFilterOptions struct + Allow []string + Deny []string + UseForwarded bool + type JWTOptions struct + Authenticator auth.JWTAuthenticator + Authorizer bebo.Authorizer + ForbiddenMessage string + UnauthorizedMessage string + type KeyFunc func(*bebo.Context) string + type LimitHandler func(*bebo.Context) error + type Limiter struct + func NewLimiter(rate float64, burst int, options ...LimiterOption) *Limiter + func (l *Limiter) Allow(key string) bool + type LimiterOption func(*Limiter) + func LimiterTTL(ttl time.Duration) LimiterOption + type LogField func(*bebo.Context, *responseRecorder, time.Duration) slog.Attr + func DefaultLogFields() []LogField + func LogBytes() LogField + func LogDuration() LogField + func LogMethod() LogField + func LogPath() LogField + func LogQuery() LogField + func LogRemoteAddr() LogField + func LogRequestBytes() LogField + func LogRequestID() LogField + func LogSpanID() LogField + func LogStatus() LogField + func LogTraceID() LogField + func LogUserAgent() LogField + type LoggerOptions struct + ErrorLevel bool + Fields []LogField + Message string + SampleRate float64 + Sampler Sampler + SkipPaths []string + func DefaultLoggerOptions() LoggerOptions + type MethodOverrideOptions struct + AllowedMethods []string + DisableDefaults bool + FormField string + HeaderName string + type MetricsOptions struct + Registry *metrics.Registry + SkipPaths []string + func DefaultMetricsOptions(registry *metrics.Registry) MetricsOptions + type RateLimitOption func(*rateLimitConfig) + func RateLimitFailOpen(enabled bool) RateLimitOption + func RateLimitHandler(fn LimitHandler) RateLimitOption + func RateLimitKey(fn KeyFunc) RateLimitOption + func RateLimitOnError(fn ErrorHandler) RateLimitOption + func RateLimitRetryAfter(duration time.Duration) RateLimitOption + type RateLimitPolicies struct + func NewRateLimitPolicies(policies []RateLimitPolicy) (*RateLimitPolicies, error) + func (p *RateLimitPolicies) Middleware(options ...RateLimitOption) bebo.Middleware + type RateLimitPolicy struct + Allow AllowFunc + Host string + Method string + Path string + type RedisLimiter struct + func NewRedisLimiter(rate float64, burst int, options RedisLimiterOptions) *RedisLimiter + func (l *RedisLimiter) Allow(ctx context.Context, key string) (bool, error) + func (l *RedisLimiter) AllowKey(key string) (bool, error) + type RedisLimiterOptions struct + Address string + DB int + DialTimeout time.Duration + DisableDefaults bool + Network string + Now func() time.Time + Password string + Prefix string + ReadTimeout time.Duration + TTL time.Duration + Username string + WriteTimeout time.Duration + type Sampler func(*bebo.Context) bool + func SampleRate(rate float64) Sampler + type SecurityHeadersOptions struct + ContentSecurityPolicy string + ContentTypeNosniff bool + CrossOriginEmbedderPolicy string + CrossOriginOpenerPolicy string + CrossOriginResourcePolicy string + DisableDefaults bool + FrameOptions string + PermissionsPolicy string + ReferrerPolicy string + StrictTransportSecurity string + func DefaultSecurityHeaders() SecurityHeadersOptions + type SessionOption func(*sessionConfig) + func SessionClearInvalid(enabled bool) SessionOption + type TraceOptions struct + SampleRate float64 + Sampler Sampler + SkipPaths []string + Tracer Tracer + func DefaultTraceOptions(tracer Tracer) TraceOptions + type Tracer interface + Start func(*bebo.Context) (context.Context, func(status int, err error))