Procházet zdrojové kódy

Fix TCP server adpater when using empty password.

release/3.x.x
Christian Kratky před 5 roky
rodič
revize
b09f31d654
1 změnil soubory, kde provedl 12 přidání a 2 odebrání
  1. +12
    -2
      Source/MQTTnet/Implementations/MqttTcpServerAdapter.cs

+ 12
- 2
Source/MQTTnet/Implementations/MqttTcpServerAdapter.cs Zobrazit soubor

@@ -41,14 +41,24 @@ namespace MQTTnet.Implementations
RegisterListeners(options.DefaultEndpointOptions, null, _cancellationTokenSource.Token);
}

if (options.TlsEndpointOptions.IsEnabled)
if (options.TlsEndpointOptions?.IsEnabled == true)
{
if (options.TlsEndpointOptions.Certificate == null)
{
throw new ArgumentException("TLS certificate is not set.");
}

var tlsCertificate = new X509Certificate2(options.TlsEndpointOptions.Certificate, options.TlsEndpointOptions.CertificateCredentials.Password);
X509Certificate2 tlsCertificate;
if (string.IsNullOrEmpty(options.TlsEndpointOptions.CertificateCredentials?.Password))
{
// Use a different overload when no password is specified. Otherwise the constructor will fail.
tlsCertificate = new X509Certificate2(options.TlsEndpointOptions.Certificate);
}
else
{
tlsCertificate = new X509Certificate2(options.TlsEndpointOptions.Certificate, options.TlsEndpointOptions.CertificateCredentials.Password);
}
if (!tlsCertificate.HasPrivateKey)
{
throw new InvalidOperationException("The certificate for TLS encryption must contain the private key.");


Načítá se…
Zrušit
Uložit