using Confluent.Kafka; public static class KafkaSecurityExtensions { /// /// Applies the configured security protocol and SASL credentials to any /// Confluent client config. Called by every producer, consumer, and admin /// client so credentials are configured in exactly one place. /// public static T ApplySecurity(this T config, KafkaOptions options) where T : ClientConfig { if (Enum.TryParse(options.SecurityProtocol, true, out var protocol)) config.SecurityProtocol = protocol; if (!string.IsNullOrWhiteSpace(options.SaslMechanism) && Enum.TryParse(options.SaslMechanism, true, out var mechanism)) { config.SaslMechanism = mechanism; config.SaslUsername = options.SaslUsername; config.SaslPassword = options.SaslPassword; } if (!string.IsNullOrWhiteSpace(options.SslCaLocation)) config.SslCaLocation = options.SslCaLocation; return config; } }