Documentation
¶
Overview ¶
Package middleware provides common HTTP middleware for HR System services. It includes authentication, logging, CORS, rate limiting, and request ID middleware.
Index ¶
- func CORS() gin.HandlerFunc
- func CORSMiddleware() gin.HandlerFunc
- func GetTenantID(c *gin.Context) string
- func GetUserID(c *gin.Context) string
- func Recovery(log logger.Logger) gin.HandlerFunc
- func RecoveryMiddleware(log logger.Logger) gin.HandlerFunc
- func RequestID() gin.HandlerFunc
- func RequestIDMiddleware() gin.HandlerFunc
- func RequestLogger(log logger.Logger) gin.HandlerFunc
- func SecurityHeadersMiddleware() gin.HandlerFunc
- func TenantMiddleware() gin.HandlerFunc
- func TimeoutMiddleware(timeout time.Duration) gin.HandlerFunc
- type AuthMiddleware
- type LoggingMiddleware
- type Manager
- type RateLimitMiddleware
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetTenantID ¶ added in v0.1.4
GetTenantID extracts the tenant 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) 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.