@@ -10,14 +10,14 @@ public class ConnectionSettingBuilder
1010 // TODO: maybe add the event "LifeCycle" to the builder
1111 private string _host = "localhost" ;
1212 private int _port = - 1 ; // Note: -1 means use the defalt for the scheme
13- private string _user = "guest" ;
14- private string _password = "guest" ;
13+ private string ? _user = "guest" ;
14+ private string ? _password = "guest" ;
1515 private string _scheme = "AMQP" ;
16- private string _connection = "AMQP.NET" ;
16+ private string _connectionName = "AMQP.NET" ;
1717 private string _virtualHost = "/" ;
18+ private SaslMechanism _saslMechanism = Client . SaslMechanism . Plain ;
1819 private IRecoveryConfiguration _recoveryConfiguration = Impl . RecoveryConfiguration . Create ( ) ;
1920
20-
2121 private ConnectionSettingBuilder ( )
2222 {
2323 }
@@ -27,7 +27,6 @@ public static ConnectionSettingBuilder Create()
2727 return new ConnectionSettingBuilder ( ) ;
2828 }
2929
30-
3130 public ConnectionSettingBuilder Host ( string host )
3231 {
3332 _host = host ;
@@ -52,16 +51,15 @@ public ConnectionSettingBuilder Password(string password)
5251 return this ;
5352 }
5453
55-
5654 public ConnectionSettingBuilder Scheme ( string scheme )
5755 {
5856 _scheme = scheme ;
5957 return this ;
6058 }
6159
62- public ConnectionSettingBuilder ConnectionName ( string connection )
60+ public ConnectionSettingBuilder ConnectionName ( string connectionName )
6361 {
64- _connection = connection ;
62+ _connectionName = connectionName ;
6563 return this ;
6664 }
6765
@@ -71,6 +69,18 @@ public ConnectionSettingBuilder VirtualHost(string virtualHost)
7169 return this ;
7270 }
7371
72+ public ConnectionSettingBuilder SaslMechanism ( SaslMechanism saslMechanism )
73+ {
74+ _saslMechanism = saslMechanism ;
75+ if ( _saslMechanism == Client . SaslMechanism . External )
76+ {
77+ _user = null ;
78+ _password = null ;
79+ }
80+
81+ return this ;
82+ }
83+
7484 public ConnectionSettingBuilder RecoveryConfiguration ( IRecoveryConfiguration recoveryConfiguration )
7585 {
7686 _recoveryConfiguration = recoveryConfiguration ;
@@ -81,7 +91,10 @@ public ConnectionSettings Build()
8191 {
8292 var c = new ConnectionSettings ( _host , _port , _user ,
8393 _password , _virtualHost ,
84- _scheme , _connection ) { RecoveryConfiguration = ( RecoveryConfiguration ) _recoveryConfiguration } ;
94+ _scheme , _connectionName , _saslMechanism )
95+ {
96+ RecoveryConfiguration = ( RecoveryConfiguration ) _recoveryConfiguration
97+ } ;
8598
8699 return c ;
87100 }
@@ -96,6 +109,7 @@ public class ConnectionSettings : IConnectionSettings
96109 private readonly string _connectionName = "" ;
97110 private readonly string _virtualHost = "/" ;
98111 private readonly ITlsSettings ? _tlsSettings ;
112+ private readonly SaslMechanism _saslMechanism = SaslMechanism . Plain ;
99113
100114 public ConnectionSettings ( string address , ITlsSettings ? tlsSettings = null )
101115 {
@@ -109,15 +123,16 @@ public ConnectionSettings(string address, ITlsSettings? tlsSettings = null)
109123 }
110124
111125 public ConnectionSettings ( string host , int port ,
112- string user , string password ,
126+ string ? user , string ? password ,
113127 string virtualHost , string scheme , string connectionName ,
114- ITlsSettings ? tlsSettings = null )
128+ SaslMechanism saslMechanism , ITlsSettings ? tlsSettings = null )
115129 {
116130 _address = new Address ( host : host , port : port ,
117131 user : user , password : password ,
118132 path : "/" , scheme : scheme ) ;
119133 _connectionName = connectionName ;
120134 _virtualHost = virtualHost ;
135+ _saslMechanism = saslMechanism ;
121136 _tlsSettings = tlsSettings ;
122137
123138 if ( _address . UseSsl && _tlsSettings == null )
@@ -129,12 +144,13 @@ public ConnectionSettings(string host, int port,
129144 public string Host => _address . Host ;
130145 public int Port => _address . Port ;
131146 public string VirtualHost => _virtualHost ;
132- public string User => _address . User ;
133- public string Password => _address . Password ;
147+ public string ? User => _address . User ;
148+ public string ? Password => _address . Password ;
134149 public string Scheme => _address . Scheme ;
135150 public string ConnectionName => _connectionName ;
136151 public string Path => _address . Path ;
137152 public bool UseSsl => _address . UseSsl ;
153+ public SaslMechanism SaslMechanism => _saslMechanism ;
138154
139155 public ITlsSettings ? TlsSettings => _tlsSettings ;
140156
@@ -279,7 +295,7 @@ public static BackOffDelayPolicy Create()
279295 {
280296 return new BackOffDelayPolicy ( ) ;
281297 }
282-
298+
283299 public static BackOffDelayPolicy Create ( int maxAttempt )
284300 {
285301 return new BackOffDelayPolicy ( maxAttempt ) ;
0 commit comments