mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-11-05 14:02:55 +08:00
Fix TCP server adpater when using empty password.
This commit is contained in:
@@ -41,14 +41,24 @@ namespace MQTTnet.Implementations
|
|||||||
RegisterListeners(options.DefaultEndpointOptions, null, _cancellationTokenSource.Token);
|
RegisterListeners(options.DefaultEndpointOptions, null, _cancellationTokenSource.Token);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.TlsEndpointOptions.IsEnabled)
|
if (options.TlsEndpointOptions?.IsEnabled == true)
|
||||||
{
|
{
|
||||||
if (options.TlsEndpointOptions.Certificate == null)
|
if (options.TlsEndpointOptions.Certificate == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentException("TLS certificate is not set.");
|
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)
|
if (!tlsCertificate.HasPrivateKey)
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException("The certificate for TLS encryption must contain the private key.");
|
throw new InvalidOperationException("The certificate for TLS encryption must contain the private key.");
|
||||||
|
|||||||
Reference in New Issue
Block a user