From 4a7f9ee3fb4696457c97ceb1dbc264853db0323d Mon Sep 17 00:00:00 2001 From: Stephen Brown Date: Fri, 11 Aug 2023 22:36:23 +0200 Subject: [PATCH] Fix #1370 by making copy of default AuthMechanisms --- projects/RabbitMQ.Client/client/api/ConnectionFactory.cs | 2 +- projects/Unit/TestConnectionFactory.cs | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/projects/RabbitMQ.Client/client/api/ConnectionFactory.cs b/projects/RabbitMQ.Client/client/api/ConnectionFactory.cs index 7074ff4bcf..88971e137e 100644 --- a/projects/RabbitMQ.Client/client/api/ConnectionFactory.cs +++ b/projects/RabbitMQ.Client/client/api/ConnectionFactory.cs @@ -153,7 +153,7 @@ public sealed class ConnectionFactory : ConnectionFactoryBase, IAsyncConnectionF /// /// SASL auth mechanisms to use. /// - public IList AuthMechanisms { get; set; } = DefaultAuthMechanisms; + public IList AuthMechanisms { get; set; } = DefaultAuthMechanisms.ToList(); /// /// Address family used by default. diff --git a/projects/Unit/TestConnectionFactory.cs b/projects/Unit/TestConnectionFactory.cs index 3a990a529f..ecc3c74afb 100644 --- a/projects/Unit/TestConnectionFactory.cs +++ b/projects/Unit/TestConnectionFactory.cs @@ -279,5 +279,14 @@ public void TestCreateConnectioUsesValidEndpointWhenMultipleSupplied() var ep = new AmqpTcpEndpoint("localhost"); using(IConnection conn = cf.CreateConnection(new List { invalidEp, ep })) {}; } + + [Test] + public void TestCreateConnectionTwiceDoesntClearAuthMechanisms() + { + var cf = new ConnectionFactory(); + cf.AuthMechanisms.Clear(); + var cf2 = new ConnectionFactory(); + Assert.That(cf2.AuthMechanisms.Count, Is.EqualTo(1)); + } } }