middleware

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package middleware provides common HTTP middleware for HR System services. It includes authentication, logging, CORS, rate limiting, and request ID middleware.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CORS added in v0.1.4

func CORS() gin.HandlerFunc

CORS returns CORS middleware.

func CORSMiddleware

func CORSMiddleware() gin.HandlerFunc

CORSMiddleware provides CORS support.

func GetTenantID added in v0.1.4

func GetTenantID(c *gin.Context) string

GetTenantID extracts the tenant ID from the Gin context.

func GetUserID added in v0.1.4

func GetUserID(c *gin.Context) string

GetUserID extracts the user ID from the Gin context.

func Recovery added in v0.1.4

func Recovery(log logger.Logger) gin.HandlerFunc

Recovery returns panic recovery middleware.

func RecoveryMiddleware

func RecoveryMiddleware(log logger.Logger) gin.HandlerFunc

RecoveryMiddleware provides panic recovery with logging.

func RequestID added in v0.1.4

func RequestID() gin.HandlerFunc

RequestID returns request ID middleware.

func RequestIDMiddleware

func RequestIDMiddleware() gin.HandlerFunc

RequestIDMiddleware adds a unique request ID to each request.

func RequestLogger added in v0.1.4

func RequestLogger(log logger.Logger) gin.HandlerFunc

RequestLogger returns request logging middleware.

func SecurityHeadersMiddleware

func SecurityHeadersMiddleware() gin.HandlerFunc

SecurityHeadersMiddleware adds security headers.

func TenantMiddleware

func TenantMiddleware() gin.HandlerFunc

TenantMiddleware ensures tenant isolation.

func TimeoutMiddleware

func TimeoutMiddleware(timeout time.Duration) gin.HandlerFunc

TimeoutMiddleware adds request timeout.

Types

type AuthMiddleware

type AuthMiddleware struct {
	// contains filtered or unexported fields
}

AuthMiddleware provides JWT authentication middleware.

func NewAuthMiddleware

func NewAuthMiddleware(jwtManager auth.TokenManager, log logger.Logger) *AuthMiddleware

NewAuthMiddleware creates a new authentication middleware.

func (*AuthMiddleware) JWTAuth

func (am *AuthMiddleware) JWTAuth() gin.HandlerFunc

JWTAuth validates JWT tokens and extracts user information.

func (*AuthMiddleware) RoleRequired

func (am *AuthMiddleware) RoleRequired(requiredRole string) gin.HandlerFunc

RoleRequired checks if the user has the required role.

type LoggingMiddleware

type LoggingMiddleware struct {
	// contains filtered or unexported fields
}

LoggingMiddleware provides request/response logging.

func NewLoggingMiddleware

func NewLoggingMiddleware(log logger.Logger) *LoggingMiddleware

NewLoggingMiddleware creates a new logging middleware.

func (*LoggingMiddleware) RequestLogger

func (lm *LoggingMiddleware) RequestLogger() gin.HandlerFunc

RequestLogger logs HTTP requests and responses.

type Manager added in v0.1.4

type Manager struct {
	// contains filtered or unexported fields
}

Manager manages all middleware components.

func NewManager added in v0.1.4

func NewManager(jwtManager auth.TokenManager, redisClient *redis.Client, log logger.Logger) *Manager

NewManager creates a new middleware manager.

func (*Manager) RateLimit added in v0.1.4

func (m *Manager) RateLimit(requests int, window time.Duration) gin.HandlerFunc

RateLimit returns rate limiting middleware.

func (*Manager) RequireAuth added in v0.1.4

func (m *Manager) RequireAuth() gin.HandlerFunc

RequireAuth returns the JWT authentication middleware.

func (*Manager) RequireRole added in v0.1.4

func (m *Manager) RequireRole(role string) gin.HandlerFunc

RequireRole returns role-based authorization middleware.

func (*Manager) RequireTenant added in v0.1.4

func (m *Manager) RequireTenant() gin.HandlerFunc

RequireTenant returns the tenant isolation middleware.

type RateLimitMiddleware

type RateLimitMiddleware struct {
	// contains filtered or unexported fields
}

RateLimitMiddleware provides rate limiting functionality.

func NewRateLimitMiddleware

func NewRateLimitMiddleware(redisClient *redis.Client, log logger.Logger) *RateLimitMiddleware

NewRateLimitMiddleware creates a new rate limiting middleware.

func (*RateLimitMiddleware) RateLimit

func (rlm *RateLimitMiddleware) RateLimit(requests int, window time.Duration) gin.HandlerFunc

RateLimit applies rate limiting based on IP address.

Jump to

Keyboard shortcuts

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