mirror of
https://github.com/lukaszraczylo/traefikoidc.git
synced 2026-10-13 04:07:37 +00:00
Apply configured conn limits in pooled transport (round 41)
http_client_pool.go SharedTransportPool.GetOrCreateTransport built the shared http.Transport with hardcoded MaxConnsPerHost=5, MaxIdleConnsPerHost=2, MaxIdleConns=10, IdleConnTimeout=30s while HTTPClientConfig's versions of those fields drove configKey (cache identity) and were validated and tuned per preset (Default: 20/10/50/30s; OIDCProvider: 50/25/100/90s). The config was thus valid, keyed, and validated but silently ignored in the transport used by main.go (CreatePooledHTTPClient) - dead config that left OIDC-provider connection tuning without effect. The sibling factory path (http_client_factory.go) already applied these values. Now the pooled transport derives MaxConnsPerHost, MaxIdleConnsPerHost, MaxIdleConns, and IdleConnTimeout from the config, consistent with the factory path and with configKey. Test: added TestSharedTransportPoolAppliesConfigLimits, which fails on the old hardcoded code (fixed values) and passes now. Verified: full source-order suite, full -race -count=1 -shuffle=on ./... (all packages), golangci-lint run ./... (0 issues).
This commit is contained in:
+4
-4
@@ -121,11 +121,11 @@ func (p *SharedTransportPool) GetOrCreateTransport(config HTTPClientConfig) *htt
|
||||
ForceAttemptHTTP2: config.ForceHTTP2,
|
||||
TLSHandshakeTimeout: config.TLSHandshakeTimeout,
|
||||
ExpectContinueTimeout: config.ExpectContinueTimeout,
|
||||
MaxIdleConns: 10, // SECURITY FIX: Further reduced
|
||||
MaxIdleConnsPerHost: 2, // SECURITY FIX: Limited connections
|
||||
IdleConnTimeout: 30 * time.Second, // Reduced from 5 minutes
|
||||
MaxIdleConns: config.MaxIdleConns,
|
||||
MaxIdleConnsPerHost: config.MaxIdleConnsPerHost,
|
||||
IdleConnTimeout: config.IdleConnTimeout,
|
||||
DisableKeepAlives: config.DisableKeepAlives,
|
||||
MaxConnsPerHost: 5, // SECURITY FIX: Strict limit
|
||||
MaxConnsPerHost: config.MaxConnsPerHost,
|
||||
ResponseHeaderTimeout: config.ResponseHeaderTimeout,
|
||||
DisableCompression: config.DisableCompression,
|
||||
WriteBufferSize: config.WriteBufferSize,
|
||||
|
||||
Reference in New Issue
Block a user