Skip to content

Commit 5ff010e

Browse files
committed
Fix validation of SSL CA Certificate for DEK Registry client
1 parent bfd88b3 commit 5ff010e

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

src/Confluent.SchemaRegistry.Encryption/CachedDekRegistryClient.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,17 @@ public CachedDekRegistryClient(IEnumerable<KeyValuePair<string, string>> config,
236236
$"Configured value for {SchemaRegistryConfig.PropertyNames.EnableSslCertificateVerification} must be a bool.");
237237
}
238238

239-
this.restService = new DekRestService(schemaRegistryUris, timeoutMs, authenticationHeaderValueProvider,
240-
SetSslConfig(config), sslVerify);
239+
var sslCaLocation = config.FirstOrDefault(prop => prop.Key.ToLower() == SchemaRegistryConfig.PropertyNames.SslCaLocation).Value;
240+
if (string.IsNullOrEmpty(sslCaLocation))
241+
{
242+
this.restService = new DekRestService(schemaRegistryUris, timeoutMs, authenticationHeaderValueProvider,
243+
SetSslConfig(config), sslVerify);
244+
}
245+
else
246+
{
247+
this.restService = new DekRestService(schemaRegistryUris, timeoutMs, authenticationHeaderValueProvider,
248+
SetSslConfig(config), sslVerify, new X509Certificate2(sslCaLocation));
249+
}
241250
}
242251

243252
/// <summary>
@@ -291,14 +300,6 @@ private List<X509Certificate2> SetSslConfig(IEnumerable<KeyValuePair<string, str
291300
certificates.Add(new X509Certificate2(certificateLocation, certificatePassword));
292301
}
293302

294-
var caLocation =
295-
config.FirstOrDefault(prop => prop.Key.ToLower() == SchemaRegistryConfig.PropertyNames.SslCaLocation)
296-
.Value ?? "";
297-
if (!String.IsNullOrEmpty(caLocation))
298-
{
299-
certificates.Add(new X509Certificate2(caLocation));
300-
}
301-
302303
return certificates;
303304
}
304305

src/Confluent.SchemaRegistry.Encryption/Rest/DekRestService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ public class DekRestService : RestService
2929
/// </summary>
3030
public DekRestService(string schemaRegistryUrl, int timeoutMs,
3131
IAuthenticationHeaderValueProvider authenticationHeaderValueProvider, List<X509Certificate2> certificates,
32-
bool enableSslCertificateVerification) :
32+
bool enableSslCertificateVerification, X509Certificate2 sslCaCertificate = null) :
3333
base(schemaRegistryUrl, timeoutMs, authenticationHeaderValueProvider, certificates,
34-
enableSslCertificateVerification)
34+
enableSslCertificateVerification, sslCaCertificate)
3535
{
3636
}
3737

src/Confluent.SchemaRegistry/CachedSchemaRegistryClient.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,8 @@ public CachedSchemaRegistryClient(IEnumerable<KeyValuePair<string, string>> conf
355355
if (string.IsNullOrEmpty(sslCaLocation))
356356
{
357357
this.restService = new RestService(schemaRegistryUris, timeoutMs, authenticationHeaderValueProvider, SetSslConfig(config), sslVerify);
358-
} else
358+
}
359+
else
359360
{
360361
this.restService = new RestService(schemaRegistryUris, timeoutMs, authenticationHeaderValueProvider, SetSslConfig(config), sslVerify, new X509Certificate2(sslCaLocation));
361362
}

0 commit comments

Comments
 (0)