public void Should_set_client_certificate_as_authentication_identity_as_false_by_default() { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { }); configurator.Settings.UseClientCertificateAsAuthenticationIdentity.ShouldBeFalse(); }
public void Should_set_client_certificate_as_authentication_identity_as_false_by_default() { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { }); configurator.Settings.UseClientCertificateAsAuthenticationIdentity.ShouldBeFalse(); }
public void Should_set_tls10_protocol_by_default() { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { }); configurator.Settings.SslProtocol.ShouldBe(SslProtocols.Tls); }
public void Should_set_tls10_protocol_by_default() { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { }); configurator.Settings.SslProtocol.ShouldBe(SslProtocols.Tls); }
public void Should_allow_remote_certificate_chain_error_by_default() { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { }); configurator.Settings.AcceptablePolicyErrors.ShouldHaveFlag(SslPolicyErrors.RemoteCertificateChainErrors); }
/// <summary> /// Configure the RabbitMQ host /// </summary> /// <param name="configurator"></param> /// <param name="hostAddress">The URI host address of the RabbitMQ host (rabbitmq://host:port/vhost)</param> /// <param name="connectionName">The client-provided connection name</param> /// <param name="configure"></param> public static void Host(this IRabbitMqBusFactoryConfigurator configurator, Uri hostAddress, string connectionName, Action <IRabbitMqHostConfigurator> configure = null) { var hostConfigurator = new RabbitMqHostConfigurator(hostAddress, connectionName); configure?.Invoke(hostConfigurator); configurator.Host(hostConfigurator.Settings); }
/// <summary> /// Configure a RabbitMQ host using the configuration API /// </summary> /// <param name="configurator"></param> /// <param name="hostAddress">The URI host address of the RabbitMQ host (rabbitmq://host:port/vhost)</param> /// <param name="connectionName">The client-provided connection name</param> /// <param name="configure"></param> public static IRabbitMqHost Host(this IRabbitMqBusFactoryConfigurator configurator, Uri hostAddress, string connectionName, Action <IRabbitMqHostConfigurator> configure) { var hostConfigurator = new RabbitMqHostConfigurator(hostAddress, connectionName); configure(hostConfigurator); return(configurator.Host(hostConfigurator.Settings)); }
/// <summary> /// Configure a RabbitMQ host using the configuration API /// </summary> /// <param name="configurator"></param> /// <param name="hostAddress">The URI host address of the RabbitMQ host (rabbitmq://host:port/vhost)</param> /// <param name="configure"></param> public static IRabbitMqHost Host(this IRabbitMqBusFactoryConfigurator configurator, Uri hostAddress, Action<IRabbitMqHostConfigurator> configure) { var hostConfigurator = new RabbitMqHostConfigurator(hostAddress); configure(hostConfigurator); return configurator.Host(hostConfigurator.Settings); }
/// <summary> /// Initializes a new instance of the <see cref="RabbitMqHostBuilder"/> class. /// </summary> /// <param name="services"><see cref="IServiceCollection"/></param> /// <param name="hostAddress">The URI host address of the RabbitMQ host (example: rabbitmq://host:port/vhost).</param> /// <param name="connectionName">The client-provided connection name.</param> public RabbitMqHostBuilder(IServiceCollection services, Uri hostAddress, string connectionName) : base(services, connectionName) { if (hostAddress == null) { throw new ArgumentNullException(nameof(hostAddress)); } _hostConfigurator = new RabbitMqHostConfigurator(hostAddress, connectionName); }
public void Should_set_client_certificate_as_authentication_identity_when_configured(bool valueToSet) { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { sslConfigurator.UseCertificateAsAuthenticationIdentity = valueToSet; }); configurator.Settings.UseClientCertificateAsAuthenticationIdentity.ShouldBe(valueToSet); }
public void Should_set_assigned_ssl_protocol() { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { sslConfigurator.Protocol = SslProtocols.Tls12; }); configurator.Settings.SslProtocol.ShouldBe(SslProtocols.Tls12); }
public void Should_set_assigned_ssl_protocol() { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { sslConfigurator.Protocol = SslProtocols.Tls12; }); configurator.Settings.SslProtocol.ShouldBe(SslProtocols.Tls12); }
public void Should_enforce_remote_certificate_chain_error_when_set() { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { sslConfigurator.EnforcePolicyErrors(SslPolicyErrors.RemoteCertificateChainErrors); }); configurator.Settings.AcceptablePolicyErrors.ShouldNotHaveFlag(SslPolicyErrors.RemoteCertificateChainErrors); }
public void Should_set_client_certificate_as_authentication_identity_when_configured(bool valueToSet) { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { sslConfigurator.UseCertificateAsAuthenticationIdentity = valueToSet; }); configurator.Settings.UseClientCertificateAsAuthenticationIdentity.ShouldBe(valueToSet); }
/// <summary> /// Configure a RabbitMQ host with a host name and virtual host /// </summary> /// <param name="configurator"></param> /// <param name="virtualHost">The virtual host to use</param> /// <param name="configure">The configuratino callback</param> /// <param name="host">The host name of the broker</param> public static IRabbitMqHost Host(this IRabbitMqBusFactoryConfigurator configurator, string host, string virtualHost, Action<IRabbitMqHostConfigurator> configure) { if (host == null) throw new ArgumentNullException(nameof(host)); if (virtualHost == null) throw new ArgumentNullException(nameof(virtualHost)); var hostConfigurator = new RabbitMqHostConfigurator(host, virtualHost); configure(hostConfigurator); return configurator.Host(hostConfigurator.Settings); }
/// <summary> /// Initializes a new instance of the <see cref="RabbitMqHostBuilder"/> class. /// </summary> /// <param name="services"><see cref="IServiceCollection"/></param> /// <param name="host">The host name of the RabbitMq broker.</param> /// <param name="port">The port to connect to on the RabbitMq broker.</param> /// <param name="virtualHost">The virtual host to use.</param> /// <param name="connectionName">The client-provided connection name.</param> public RabbitMqHostBuilder(IServiceCollection services, string host, ushort port, string virtualHost, string connectionName) : base(services, connectionName) { if (host == null) { throw new ArgumentNullException(nameof(host)); } if (virtualHost == null) { throw new ArgumentNullException(nameof(virtualHost)); } _hostConfigurator = new RabbitMqHostConfigurator(host, virtualHost, port, connectionName); }
public void Should_use_custom_client_certificate_selector_when_set() { LocalCertificateSelectionCallback customSelector = (sender, targetHost, localCertificates, remoteCertificate, acceptableIssuers) => null; var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { sslConfigurator.CertificateSelectionCallback = customSelector; }); configurator.Settings.CertificateSelectionCallback.ShouldBeSameAs(customSelector); }
public void Should_use_custom_remote_certificate_validator_when_set() { RemoteCertificateValidationCallback customValidator = (sender, certificate, chain, sslPolicyErrors) => false; var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost")); configurator.UseSsl(sslConfigurator => { sslConfigurator.CertificateValidationCallback = customValidator; }); configurator.Settings.CertificateValidationCallback.ShouldBeSameAs(customValidator); }
/// <summary> /// Configure the RabbitMQ host /// </summary> /// <param name="configurator"></param> /// <param name="host">The host name of the broker</param> /// <param name="port">The port to connect to the broker</param> /// <param name="virtualHost">The virtual host to use</param> /// <param name="connectionName">The client-provided connection name</param> /// <param name="configure">The configuration callback</param> public static void Host(this IRabbitMqBusFactoryConfigurator configurator, string host, ushort port, string virtualHost, string connectionName, Action <IRabbitMqHostConfigurator> configure = null) { if (host == null) { throw new ArgumentNullException(nameof(host)); } if (virtualHost == null) { throw new ArgumentNullException(nameof(virtualHost)); } var hostConfigurator = new RabbitMqHostConfigurator(host, virtualHost, port, connectionName); configure?.Invoke(hostConfigurator); configurator.Host(hostConfigurator.Settings); }
/// <summary> /// Configure a RabbitMQ host with a host name and virtual host /// </summary> /// <param name="configurator"></param> /// <param name="host">The host name of the broker</param> /// <param name="virtualHost">The virtual host to use</param> /// <param name="connectionName">The client-provided connection name</param> /// <param name="configure">The configuration callback</param> public static IRabbitMqHost Host(this IRabbitMqBusFactoryConfigurator configurator, string host, string virtualHost, string connectionName, Action <IRabbitMqHostConfigurator> configure) { if (host == null) { throw new ArgumentNullException(nameof(host)); } if (virtualHost == null) { throw new ArgumentNullException(nameof(virtualHost)); } var hostConfigurator = new RabbitMqHostConfigurator(host, virtualHost, connectionName: connectionName); configure(hostConfigurator); return(configurator.Host(hostConfigurator.Settings)); }
public static RabbitMqHostSettings ToRabbitMqHostSettings(this RabbitMqBusConfiguration configuration) { var hostConfiguration = new RabbitMqHostConfigurator(configuration.Host, configuration.VirtualHost, (ushort)configuration.Port) { PublisherConfirmation = true }; if (!string.IsNullOrEmpty(configuration.Username)) { hostConfiguration.Username(configuration.Username); } if (!string.IsNullOrEmpty(configuration.Password)) { hostConfiguration.Password(configuration.Password); } if (configuration.UseSsl) { hostConfiguration.UseSsl((x) => { x.Protocol = System.Security.Authentication.SslProtocols.Tls12; }); } return(hostConfiguration.Settings); }
/// <summary> /// Initializes a new instance of the <see cref="RabbitMqHostBuilder"/> class. /// </summary> /// <param name="services"><see cref="IServiceCollection"/></param> /// <param name="connectionName">The client-provided connection name.</param> /// <param name="configuration">The <see cref="IConfiguration"/> being bound.</param> public RabbitMqHostBuilder(IServiceCollection services, string connectionName, IConfiguration configuration) : this(services, connectionName) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } services.AddOptions(); services.Configure <RabbitMqOptions>(ConnectionName, configuration); _hostConfiguratorFactory = serviceProvider => { var optionsSnapshot = serviceProvider.GetRequiredService <IOptionsSnapshot <RabbitMqOptions> >(); var options = optionsSnapshot.Get(ConnectionName); var hostConfigurator = new RabbitMqHostConfigurator(options.HostAddress, ConnectionName); if (options.Heartbeat.HasValue) { hostConfigurator.Heartbeat(options.Heartbeat.Value); } if (!string.IsNullOrEmpty(options.Username)) { hostConfigurator.Username(options.Username); } if (!string.IsNullOrEmpty(options.Password)) { hostConfigurator.Password(options.Password); } return(hostConfigurator); }; }
public RabbitMqTransport(IConfiguration configuration) { var url = configuration["RabbitMq:Connection"]; _rabbitMqHostSettings = new RabbitMqHostConfigurator(url, "/"); }
public void Should_ParseVhost_With_escapes() { var configurator = new RabbitMqHostConfigurator(new Uri("rabbitmq://localhost/%2fv%2fhost")); configurator.Settings.VirtualHost.ShouldBe("/v/host"); }