Documentation
¶
Index ¶
- func RateLimitWithWhitelist(rateLimiter *RateLimitMiddleware, whitelist *IPWhitelist) gin.HandlerFunc
- func SanitizeString(input string) string
- func ValidateResourceID(resourceID string) error
- type AdaptiveRateLimit
- type CSRFMiddleware
- func (m *CSRFMiddleware) DoubleSubmitCookie() gin.HandlerFunc
- func (m *CSRFMiddleware) GenerateToken(sessionID string) (string, error)
- func (m *CSRFMiddleware) GetCSRFToken() gin.HandlerFunc
- func (m *CSRFMiddleware) ProtectCSRF() gin.HandlerFunc
- func (m *CSRFMiddleware) ValidateToken(token string, sessionID string) bool
- type ContextKey
- type EndpointLimit
- type IPWhitelist
- type RateLimitConfig
- type RateLimitMiddleware
- type ValidationMiddleware
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RateLimitWithWhitelist ¶
func RateLimitWithWhitelist(rateLimiter *RateLimitMiddleware, whitelist *IPWhitelist) gin.HandlerFunc
RateLimitWithWhitelist applies rate limiting with IP whitelist bypass
func SanitizeString ¶
SanitizeString sanitizes a string for safe output
func ValidateResourceID ¶
ValidateResourceID validates resource identifier format
Types ¶
type AdaptiveRateLimit ¶
type AdaptiveRateLimit struct {
// contains filtered or unexported fields
}
AdaptiveRateLimit provides adaptive rate limiting based on system load
func NewAdaptiveRateLimit ¶
func NewAdaptiveRateLimit(config RateLimitConfig, loadMonitor func() float64) *AdaptiveRateLimit
NewAdaptiveRateLimit creates an adaptive rate limiter
func (*AdaptiveRateLimit) RateLimit ¶
func (a *AdaptiveRateLimit) RateLimit() gin.HandlerFunc
RateLimit applies adaptive rate limiting
type CSRFMiddleware ¶
type CSRFMiddleware struct {
// contains filtered or unexported fields
}
CSRFMiddleware provides CSRF protection
func NewCSRFMiddleware ¶
func NewCSRFMiddleware() *CSRFMiddleware
NewCSRFMiddleware creates a new CSRF middleware
func (*CSRFMiddleware) DoubleSubmitCookie ¶
func (m *CSRFMiddleware) DoubleSubmitCookie() gin.HandlerFunc
DoubleSubmitCookie implements double-submit cookie CSRF protection
func (*CSRFMiddleware) GenerateToken ¶
func (m *CSRFMiddleware) GenerateToken(sessionID string) (string, error)
GenerateToken generates a new CSRF token
func (*CSRFMiddleware) GetCSRFToken ¶
func (m *CSRFMiddleware) GetCSRFToken() gin.HandlerFunc
GetCSRFToken endpoint handler to get a new CSRF token
func (*CSRFMiddleware) ProtectCSRF ¶
func (m *CSRFMiddleware) ProtectCSRF() gin.HandlerFunc
ProtectCSRF enforces CSRF protection on state-changing operations
func (*CSRFMiddleware) ValidateToken ¶
func (m *CSRFMiddleware) ValidateToken(token string, sessionID string) bool
ValidateToken validates a CSRF token
type ContextKey ¶
type ContextKey string
ContextKey for storing auth information
const ( UserContextKey ContextKey = "user" ClaimsContextKey ContextKey = "claims" )
type EndpointLimit ¶
EndpointLimit defines limits for specific endpoints
type IPWhitelist ¶
type IPWhitelist struct {
// contains filtered or unexported fields
}
IPWhitelist provides IP whitelisting to bypass rate limits
func NewIPWhitelist ¶
func NewIPWhitelist(ips []string) *IPWhitelist
NewIPWhitelist creates a new IP whitelist
func (*IPWhitelist) IsWhitelisted ¶
func (w *IPWhitelist) IsWhitelisted(ip string) bool
IsWhitelisted checks if an IP is whitelisted
func (*IPWhitelist) Remove ¶
func (w *IPWhitelist) Remove(ip string)
Remove removes an IP from the whitelist
type RateLimitConfig ¶
type RateLimitConfig struct { // Global limits GlobalRPS int // Requests per second globally GlobalBurst int // Burst size globally // Per-user limits UserRPS int // Requests per second per user UserBurst int // Burst size per user // Per-IP limits IPRPS int // Requests per second per IP IPBurst int // Burst size per IP // API key limits (higher for service accounts) APIKeyRPS int // Requests per second for API keys APIKeyBurst int // Burst size for API keys // Endpoint-specific limits EndpointLimits map[string]EndpointLimit // Cleanup interval CleanupInterval time.Duration // TTL for inactive limiters InactiveTTL time.Duration }
RateLimitConfig defines rate limiting configuration
func DefaultRateLimitConfig ¶
func DefaultRateLimitConfig() RateLimitConfig
DefaultRateLimitConfig returns default rate limit configuration
type RateLimitMiddleware ¶
type RateLimitMiddleware struct {
// contains filtered or unexported fields
}
RateLimitMiddleware provides rate limiting for API endpoints
func NewRateLimitMiddleware ¶
func NewRateLimitMiddleware(config RateLimitConfig) *RateLimitMiddleware
NewRateLimitMiddleware creates a new rate limiting middleware
func (*RateLimitMiddleware) RateLimit ¶
func (m *RateLimitMiddleware) RateLimit() gin.HandlerFunc
RateLimit enforces rate limiting
func (*RateLimitMiddleware) Stop ¶
func (m *RateLimitMiddleware) Stop()
Stop stops the cleanup routine
type ValidationMiddleware ¶
type ValidationMiddleware struct {
// contains filtered or unexported fields
}
ValidationMiddleware provides input validation and sanitization
func NewValidationMiddleware ¶
func NewValidationMiddleware() *ValidationMiddleware
NewValidationMiddleware creates a new validation middleware
func (*ValidationMiddleware) ValidateJSON ¶
func (m *ValidationMiddleware) ValidateJSON(target interface{}) gin.HandlerFunc
ValidateJSON validates JSON request body against a struct
func (*ValidationMiddleware) ValidateProvider ¶
func (m *ValidationMiddleware) ValidateProvider(provider string) error
ValidateProvider validates cloud provider name
func (*ValidationMiddleware) ValidateRegion ¶
func (m *ValidationMiddleware) ValidateRegion(provider, region string) error
ValidateRegion validates region for a provider
func (*ValidationMiddleware) ValidateRequest ¶
func (m *ValidationMiddleware) ValidateRequest() gin.HandlerFunc
ValidateRequest validates and sanitizes incoming requests