middleware

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 17, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const HeaderRequestID = "X-Request-ID"

Variables

This section is empty.

Functions

func AddUserInfo

func AddUserInfo(userService *userSvc.Service) gin.HandlerFunc

func Auth

func Auth(secret string) gin.HandlerFunc

func AuthWithOptions

func AuthWithOptions(opts AuthOption) gin.HandlerFunc

func ClearDashboardCookie

func ClearDashboardCookie(c *gin.Context)

func DashboardAuth

func DashboardAuth(secret string, users UserProvider) gin.HandlerFunc

func GetClientIP

func GetClientIP(c *gin.Context) string

func IPRateLimit

func IPRateLimit(opts IPRateLimitOption) gin.HandlerFunc

IPRateLimit reforça limites por IP para rotas públicas.

func IsPrivateIP

func IsPrivateIP(ip string) bool

func RateLimit

func RateLimit(opts RateLimitOption) gin.HandlerFunc

RateLimit aplica contagem de requisições por token usando Redis.

func RequestID

func RequestID() gin.HandlerFunc

func RequireAdmin

func RequireAdmin(userService *userSvc.Service) gin.HandlerFunc

func RequireRole

func RequireRole(userService *userSvc.Service, requiredRole string) gin.HandlerFunc

func SetDashboardCookie

func SetDashboardCookie(c *gin.Context, token string)

Types

type AuthOption

type AuthOption struct {
	JWTSecret       string
	APITokenService *apiTokenSvc.Service
	InstanceRepo    storage.InstanceRepository
}

AuthOption configura o middleware de autenticação.

type IPRateLimitOption

type IPRateLimitOption struct {
	Enabled        bool
	Requests       int
	WindowSeconds  int
	Limiter        ratelimiter.Limiter
	Logger         *zap.Logger
	SkipPrivateIPs bool
}

type RateLimitOption

type RateLimitOption struct {
	Enabled  bool
	Requests int
	Window   time.Duration
	Prefix   string
	Limiter  ratelimiter.Limiter
	Logger   *zap.Logger
}

RateLimitOption parametriza o middleware de limite por token.

type UserProvider

type UserProvider interface {
	Exists(ctx context.Context, id string) (bool, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL