19 lines
666 B
Go
19 lines
666 B
Go
package clientip
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplepress-backend/config"
|
|
)
|
|
|
|
// ProvideExtractor provides a client IP extractor configured from the application config
|
|
func ProvideExtractor(cfg *config.Config, logger *zap.Logger) (*Extractor, error) {
|
|
// If no trusted proxies configured, use default (no X-Forwarded-For trust)
|
|
if len(cfg.Security.TrustedProxies) == 0 {
|
|
logger.Info("no trusted proxies configured - X-Forwarded-For headers will be ignored for security")
|
|
return NewDefaultExtractor(logger), nil
|
|
}
|
|
|
|
// Create extractor with trusted proxies
|
|
return NewExtractor(cfg.Security.TrustedProxies, logger)
|
|
}
|