public QueueConnectionFactory( ConnectionFactory connectionFactory, IQueueConfiguration queueWrapperConfig, ICertificateHelper certificateHelper) { _connectionFactory = connectionFactory ?? throw new ArgumentNullException(nameof(connectionFactory)); _queueWrapperConfig = queueWrapperConfig ?? throw new ArgumentNullException(nameof(QueueConnectionFactory)); if (certificateHelper == null) { throw new ArgumentNullException(nameof(certificateHelper)); } // verify that the queue configuration is valid if (!_queueWrapperConfig.IsValid) { throw new ArgumentException("Queue Configuration is not valid", nameof(_queueWrapperConfig)); } _connections = new ConcurrentDictionary <string, IConnectionHandler>(); _connectionFactory = connectionFactory; _connectionFactory.AuthMechanisms = new[] { new ExternalMechanismFactory() }; _connectionFactory.Uri = _queueWrapperConfig.Uri; _connectionFactory.Ssl.ServerName = queueWrapperConfig.Uri.Host; _connectionFactory.ContinuationTimeout = TimeSpan.FromSeconds(queueWrapperConfig.ProtocolTimeoutIntervalSeconds); _connectionFactory.HandshakeContinuationTimeout = TimeSpan.FromSeconds(queueWrapperConfig.ProtocolTimeoutIntervalSeconds); var certificateResult = !string.IsNullOrEmpty(queueWrapperConfig.CertificatePath) ? certificateHelper.TryLoadCertificate(queueWrapperConfig.ClientCertificateSubjectName, queueWrapperConfig.CertificatePath, queueWrapperConfig.CertificatePassword) : certificateHelper.TryFindCertificate(queueWrapperConfig.ClientCertificateSubjectName); if (!certificateResult.Success) { throw new FatalErrorException( string.Format(Resources.CouldNotFindCertificateError, queueWrapperConfig.ClientCertificateSubjectName, certificateResult.Message)); } var certificates = certificateResult.Certificates; _connectionFactory.Ssl.Certs = certificates; _connectionFactory.Ssl.Version = System.Security.Authentication.SslProtocols.Tls12; _connectionFactory.Ssl.Enabled = true; _connectionFactory.AutomaticRecoveryEnabled = queueWrapperConfig.AutomaticRecoveryEnabled; _connectionFactory.NetworkRecoveryInterval = TimeSpan.FromSeconds(queueWrapperConfig.NetworkRecoveryIntervalSeconds); _connectionFactory.RequestedHeartbeat = queueWrapperConfig.RabbitMQHeartbeatSeconds; }
public QueueConnectionFactory( ConnectionFactory connectionFactory, IQueueConfiguration queueWrapperConfig, ICertificateHelper certificateHelper) { _connectionFactory = connectionFactory ?? throw new ArgumentNullException(nameof(connectionFactory)); _queueWrapperConfig = queueWrapperConfig ?? throw new ArgumentNullException(nameof(QueueConnectionFactory)); if (certificateHelper == null) { throw new ArgumentNullException(nameof(certificateHelper)); } _connections = new ConcurrentDictionary <string, IConnectionHandler>(); _connectionFactory = connectionFactory; _connectionFactory.AuthMechanisms = new[] { new ExternalMechanismFactory() }; _connectionFactory.Uri = _queueWrapperConfig.Uri; _connectionFactory.Ssl.ServerName = queueWrapperConfig.Uri.Host; _connectionFactory.ContinuationTimeout = TimeSpan.FromSeconds(queueWrapperConfig.ProtocolTimeoutIntervalSeconds); _connectionFactory.HandshakeContinuationTimeout = TimeSpan.FromSeconds(queueWrapperConfig.ProtocolTimeoutIntervalSeconds); X509Certificate2Collection certificates; if (!certificateHelper.TryFindCertificate(queueWrapperConfig.ClientCertificateSubjectName, out certificates)) { throw new FatalErrorException( string.Format(Resources.CouldNotFindCertificateError, queueWrapperConfig.ClientCertificateSubjectName, certificates.Count)); } _connectionFactory.Ssl.Certs = certificates; _connectionFactory.Ssl.Version = System.Security.Authentication.SslProtocols.Tls12; _connectionFactory.Ssl.Enabled = true; _connectionFactory.AutomaticRecoveryEnabled = queueWrapperConfig.AutomaticRecoveryEnabled; _connectionFactory.NetworkRecoveryInterval = TimeSpan.FromSeconds(queueWrapperConfig.NetworkRecoveryIntervalSeconds); _connectionFactory.RequestedHeartbeat = queueWrapperConfig.RabbitMQHeartbeatSeconds; //this.ConnectionShuttingDown = false; //this.cancellationToken = cancellationToken; //this.cancellationToken.Register(ConnectionCancelled); }
/// <summary> /// Initializes a new instance of the <see cref="AzureKeyVaultClient"/> class. /// Unlike the KeyVaultClient, it takes the full <see cref="ICertificateHelper"/> and converts it to the callback. /// </summary> /// <param name="cert">Certificate helper</param> public AzureKeyVaultClient(ICertificateHelper cert) { this.client = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(cert.GetAccessToken)); }