Skip to content

Commit 4900985

Browse files
committed
CSHARP-2157: Deprecate MongoDB-CR
1 parent a49559a commit 4900985

File tree

12 files changed

+53
-4
lines changed

12 files changed

+53
-4
lines changed

src/MongoDB.Driver.Core/Core/Authentication/DefaultAuthenticator.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,11 @@ private IAuthenticator CreateAuthenticator(IConnection connection, ConnectionDes
137137
}
138138
// If saslSupportedMechs is not present in the isMaster results for mechanism negotiation, then SCRAM-SHA-1
139139
// MUST be used when talking to servers >= 3.0. Prior to server 3.0, MONGODB-CR MUST be used.
140+
#pragma warning disable 618
140141
return Feature.ScramSha1Authentication.IsSupported(description.ServerVersion)
141142
? (IAuthenticator) new ScramSha1Authenticator(_credential, _randomStringGenerator)
142143
: new MongoDBCRAuthenticator(_credential);
144+
#pragma warning restore 618
143145
}
144146
}
145147
}

src/MongoDB.Driver.Core/Core/Authentication/MongoDBCRAuthenticator.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ namespace MongoDB.Driver.Core.Authentication
3030
{
3131
/// <summary>
3232
/// A MONGODB-CR authenticator.
33+
/// This authenticator was replaced by <see cref="ScramSha1Authenticator"/> in MongoDB 3.0, and is now deprecated.
3334
/// </summary>
35+
[Obsolete("This authenticator was replaced by ScramSha1Authenticator in MongoDB 3.0, and is now deprecated.")]
3436
public sealed class MongoDBCRAuthenticator : IAuthenticator
3537
{
3638
// static properties

src/MongoDB.Driver.Core/Core/Configuration/ClusterBuilderExtensions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,11 @@ private static IAuthenticator CreateAuthenticator(ConnectionString connectionStr
192192
{
193193
return new DefaultAuthenticator(credential);
194194
}
195+
#pragma warning disable 618
195196
else if (connectionString.AuthMechanism == MongoDBCRAuthenticator.MechanismName)
196197
{
197198
return new MongoDBCRAuthenticator(credential);
199+
#pragma warning restore 618
198200
}
199201
else if (connectionString.AuthMechanism == ScramSha1Authenticator.MechanismName)
200202
{

src/MongoDB.Driver/MongoCredential.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ public static MongoCredential CreateGssapiCredential(string username, SecureStri
231231
/// <param name="username">The username.</param>
232232
/// <param name="password">The password.</param>
233233
/// <returns>A credential for MONGODB-CR.</returns>
234+
[Obsolete("MONGODB-CR was replaced by SCRAM-SHA-1 in MongoDB 3.0, and is now deprecated.")]
234235
public static MongoCredential CreateMongoCRCredential(string databaseName, string username, string password)
235236
{
236237
return FromComponents("MONGODB-CR",
@@ -246,6 +247,7 @@ public static MongoCredential CreateMongoCRCredential(string databaseName, strin
246247
/// <param name="username">The username.</param>
247248
/// <param name="password">The password.</param>
248249
/// <returns>A credential for MONGODB-CR.</returns>
250+
[Obsolete("MONGODB-CR was replaced by SCRAM-SHA-1 in MongoDB 3.0, and is now deprecated.")]
249251
public static MongoCredential CreateMongoCRCredential(string databaseName, string username, SecureString password)
250252
{
251253
return FromComponents("MONGODB-CR",
@@ -255,7 +257,7 @@ public static MongoCredential CreateMongoCRCredential(string databaseName, strin
255257
}
256258

257259
/// <summary>
258-
/// Creates a credential used with MONGODB-CR.
260+
/// Creates a credential used with MONGODB-X509.
259261
/// </summary>
260262
/// <param name="username">The username.</param>
261263
/// <returns>A credential for MONGODB-X509.</returns>
@@ -396,9 +398,11 @@ internal IAuthenticator ToAuthenticator()
396398
{
397399
return new DefaultAuthenticator(credential);
398400
}
401+
#pragma warning disable 618
399402
else if (_mechanism == MongoDBCRAuthenticator.MechanismName)
400403
{
401404
return new MongoDBCRAuthenticator(credential);
405+
#pragma warning restore 618
402406
}
403407
else if (_mechanism == ScramSha1Authenticator.MechanismName)
404408
{

src/MongoDB.Driver/PasswordEvidence.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ public override int GetHashCode()
106106
/// Computes the MONGODB-CR password digest.
107107
/// </summary>
108108
/// <param name="username">The username.</param>
109-
/// <returns></returns>
109+
/// <returns>The MONGODB-CR password digest.</returns>
110+
[Obsolete("MONGODB-CR was replaced by SCRAM-SHA-1 in MongoDB 3.0, and is now deprecated.")]
110111
internal string ComputeMongoCRPasswordDigest(string username)
111112
{
112113
using (var md5 = MD5.Create())

tests/MongoDB.Driver.Core.Tests/Core/Authentication/MongoDBCRAuthenticatorTests.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ public class MongoDBXCRAuthenticatorTests
4343
[Fact]
4444
public void Constructor_should_throw_an_ArgumentNullException_when_credential_is_null()
4545
{
46+
#pragma warning disable 618
4647
Action act = () => new MongoDBCRAuthenticator(null);
48+
#pragma warning restore 618
4749

4850
act.ShouldThrow<ArgumentNullException>();
4951
}
@@ -54,7 +56,9 @@ public void Authenticate_should_throw_an_AuthenticationException_when_authentica
5456
[Values(false, true)]
5557
bool async)
5658
{
59+
#pragma warning disable 618
5760
var subject = new MongoDBCRAuthenticator(__credential);
61+
#pragma warning restore 618
5862

5963
var reply = MessageHelper.BuildNoDocumentsReturnedReply<RawBsonDocument>();
6064
var connection = new MockConnection(__serverId);
@@ -79,7 +83,9 @@ public void Authenticate_should_not_throw_when_authentication_succeeds(
7983
[Values(false, true)]
8084
bool async)
8185
{
86+
#pragma warning disable 618
8287
var subject = new MongoDBCRAuthenticator(__credential);
88+
#pragma warning restore 618
8389

8490
var getNonceReply = MessageHelper.BuildReply<RawBsonDocument>(
8591
RawBsonDocumentHelper.FromJson("{nonce: \"2375531c32080ae8\", ok: 1}"));

tests/MongoDB.Driver.Core.Tests/Core/Configuration/ConnectionSettingsTests.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,9 @@ public void constructor_with_applicationName_should_initialize_instance()
9191
[Fact]
9292
public void constructor_with_authenticators_should_initialize_instance()
9393
{
94+
#pragma warning disable 618
9495
var authenticators = new[] { new MongoDBCRAuthenticator(new UsernamePasswordCredential("source", "username", "password")) };
96+
#pragma warning restore 618
9597

9698
var subject = new ConnectionSettings(authenticators: authenticators);
9799

@@ -145,8 +147,10 @@ public void With_applicationName_should_return_expected_result()
145147
[Fact]
146148
public void With_authenticators_should_return_expected_result()
147149
{
150+
#pragma warning disable 618
148151
var oldAuthenticators = new[] { new MongoDBCRAuthenticator(new UsernamePasswordCredential("source", "username1", "password1")) };
149152
var newAuthenticators = new[] { new MongoDBCRAuthenticator(new UsernamePasswordCredential("source", "username2", "password2")) };
153+
#pragma warning restore 618
150154
var subject = new ConnectionSettings(authenticators: oldAuthenticators);
151155

152156
var result = subject.With(authenticators: newAuthenticators);

tests/MongoDB.Driver.Legacy.Tests/MongoServerSettingsTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,9 @@ public void TestClone()
8383
var settings = MongoServerSettings.FromUrl(url);
8484

8585
// a few settings can only be made in code
86+
#pragma warning disable 618
8687
settings.Credential = MongoCredential.CreateMongoCRCredential("database", "username", "password").WithMechanismProperty("SERVICE_NAME", "other");
88+
#pragma warning restore 618
8789
settings.SslSettings = new SslSettings { CheckCertificateRevocation = false };
8890

8991
var clone = settings.Clone();
@@ -191,11 +193,15 @@ public void TestEquals()
191193
Assert.False(clone.Equals(settings));
192194

193195
clone = settings.Clone();
196+
#pragma warning disable 618
194197
clone.Credential = MongoCredential.CreateMongoCRCredential("db2", "user2", "password2");
198+
#pragma warning restore 618
195199
Assert.False(clone.Equals(settings));
196200

197201
clone = settings.Clone();
202+
#pragma warning disable 618
198203
clone.Credential = MongoCredential.CreateMongoCRCredential("db1", "user2", "password2");
204+
#pragma warning restore 618
199205
Assert.False(clone.Equals(settings));
200206

201207
clone = settings.Clone();
@@ -794,7 +800,9 @@ public void TestWriteConcern()
794800
[Fact]
795801
public void ToClusterKey_should_copy_relevant_values()
796802
{
803+
#pragma warning disable 618
797804
var credential = MongoCredential.CreateMongoCRCredential("source", "username", "password");
805+
#pragma warning restore 618
798806
var servers = new[] { new MongoServerAddress("localhost") };
799807
var sslSettings = new SslSettings
800808
{

tests/MongoDB.Driver.Tests/ClusterKeyTests.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ private ClusterKey CreateSubject(string notEqualFieldName = null)
7272
var applicationName = "app1";
7373
var connectionMode = ConnectionMode.Direct;
7474
var connectTimeout = TimeSpan.FromSeconds(1);
75+
#pragma warning disable 618
7576
var credential = MongoCredential.CreateMongoCRCredential("source", "username", "password");
77+
#pragma warning restore 618
7678
var guidRepresentation = GuidRepresentation.Standard;
7779
var heartbeatInterval = TimeSpan.FromSeconds(7);
7880
var heartbeatTimeout = TimeSpan.FromSeconds(8);
@@ -101,7 +103,9 @@ private ClusterKey CreateSubject(string notEqualFieldName = null)
101103
case "ApplicationName": applicationName = "app2"; break;
102104
case "ConnectionMode": connectionMode = ConnectionMode.ReplicaSet; break;
103105
case "ConnectTimeout": connectTimeout = TimeSpan.FromSeconds(99); break;
106+
#pragma warning disable 618
104107
case "Credentials": credential = MongoCredential.CreateMongoCRCredential("different", "different", "different"); break;
108+
#pragma warning restore 618
105109
case "HeartbeatInterval": heartbeatInterval = TimeSpan.FromSeconds(99); break;
106110
case "HeartbeatTimeout": heartbeatTimeout = TimeSpan.FromSeconds(99); break;
107111
case "IPv6": ipv6 = !ipv6; break;

tests/MongoDB.Driver.Tests/ClusterRegistryTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ public void Instance_should_return_the_same_instance_every_time()
4343
[Fact]
4444
public void GetOrCreateCluster_should_return_a_cluster_with_the_correct_settings()
4545
{
46+
#pragma warning disable 618
4647
var credential = MongoCredential.CreateMongoCRCredential("source", "username", "password");
48+
#pragma warning restore 618
4749
var servers = new[] { new MongoServerAddress("localhost"), new MongoServerAddress("127.0.0.1", 30000), new MongoServerAddress("[::1]", 27018) };
4850

4951
var sslSettings = new SslSettings

0 commit comments

Comments
 (0)