Audit review (rounds 1-31): fix confirmed issues, remove dead code, harden tests

Security/correctness fixes:
- fail-open token validation preserved with lenient-audience; access token that
  fails verification and has no ID token to corroborate now fails closed
- token_manager blacklist-expiry: fix impossible tautology (x>24h && x<24h)
- constant-time OAuth state compare; clear state/nonce/code_verifier on
  callback token-exchange failure to prevent replay of half-failed flows
- StopAllTasks gated on last-instance close
- background-task panic recovery; remove task-registry counter leak
- circuit breaker half-open: release probe slot; CB + per-session outcome
  recorded once per refresh operation, not once per waiter
- Redis connection pool: handle nil receive when pool closed concurrently
- FileStore: atomic temp-write + rename
- errors_recovery health-check data race -> atomic

Test-isolation / hardening:
- reset helpers for Once-pinned global cache manager and transport pool
- coverage: utils 70->93% (redirect URL security contract); fuzz targets for
  bearer parsers; concurrent ServeHTTP race tests for the shared request path

Dead-code removal (verified orphaned, build+suite green): internal/providers
(30 files, 0 importers), internal/compat, internal/features, input_validation.

Verified: govulncheck, go mod tidy, yaegi-validate, cross-compile (darwin+
linux), golangci-lint (new-from-rev clean), 3x full race+shuffle green.
This commit is contained in:
2026-08-12 23:08:03 +01:00
parent f728f61777
commit 2ff14556d0
66 changed files with 1064 additions and 10046 deletions
+12 -6
View File
@@ -1271,9 +1271,12 @@ func TestGracefulDegradationRegisterHealthCheck(t *testing.T) {
defer gd.Close()
t.Run("register health check", func(t *testing.T) {
healthy := true
var healthy atomic.Bool
healthy.Store(true)
// The health check runs on a background goroutine (performHealthChecks at
// the configured interval); a plain captured bool would be a data race.
healthCheck := func() bool {
return healthy
return healthy.Load()
}
gd.RegisterHealthCheck("service1", healthCheck)
@@ -1281,7 +1284,7 @@ func TestGracefulDegradationRegisterHealthCheck(t *testing.T) {
gd.markServiceDegraded("service1")
assert.True(t, gd.isServiceDegraded("service1"))
healthy = true
healthy.Store(true)
time.Sleep(100 * time.Millisecond)
})
}
@@ -1609,9 +1612,12 @@ func TestGracefulDegradationFullScenario(t *testing.T) {
return "fallback data", nil
})
serviceHealthy := false
var serviceHealthy atomic.Bool
serviceHealthy.Store(false)
// Health checks run on a background goroutine (performHealthChecks at the
// configured interval); a plain captured bool is a data race.
gd.RegisterHealthCheck("critical-service", func() bool {
return serviceHealthy
return serviceHealthy.Load()
})
result1, err1 := gd.ExecuteWithFallback("critical-service", func() (interface{}, error) {
@@ -1634,7 +1640,7 @@ func TestGracefulDegradationFullScenario(t *testing.T) {
assert.NoError(t, err3)
assert.Equal(t, "fallback data", result3)
serviceHealthy = true
serviceHealthy.Store(true)
time.Sleep(250 * time.Millisecond)
metrics := gd.GetMetrics()