From 9a3bebe16ac35fd7d7fddf8ec3e06e702607021d Mon Sep 17 00:00:00 2001 From: Alex Bechmann Date: Fri, 27 Oct 2017 12:44:59 +0200 Subject: [PATCH] Added global config option to allow configuration of ssl settings --- MongoRepository/GlobalConfig.cs | 30 ++++++++++++++++++++ MongoRepository/MongoRepository.Net35.csproj | 1 + MongoRepository/MongoRepository.Net40.csproj | 1 + MongoRepository/MongoRepository.Net45.csproj | 1 + MongoRepository/Util.cs | 6 +++- 5 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 MongoRepository/GlobalConfig.cs diff --git a/MongoRepository/GlobalConfig.cs b/MongoRepository/GlobalConfig.cs new file mode 100644 index 0000000..b0a12be --- /dev/null +++ b/MongoRepository/GlobalConfig.cs @@ -0,0 +1,30 @@ +using MongoDB.Driver; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace MongoRepository +{ + public static class GlobalConfig + { + private static Action ConfigureSslSettingsAction { get; set; } + + public static void ConfigureSslSettings(Action configureSslSettings) + { + ConfigureSslSettingsAction = configureSslSettings; + } + + internal static SslSettings GetSslSettings(SslSettings settings) + { + if (settings == null) + { + settings = new SslSettings(); + } + + ConfigureSslSettingsAction?.Invoke(settings); + + return settings; + } + } +} diff --git a/MongoRepository/MongoRepository.Net35.csproj b/MongoRepository/MongoRepository.Net35.csproj index 74fe36e..a407a67 100644 --- a/MongoRepository/MongoRepository.Net35.csproj +++ b/MongoRepository/MongoRepository.Net35.csproj @@ -57,6 +57,7 @@ + diff --git a/MongoRepository/MongoRepository.Net40.csproj b/MongoRepository/MongoRepository.Net40.csproj index d9dbde9..75c0a17 100644 --- a/MongoRepository/MongoRepository.Net40.csproj +++ b/MongoRepository/MongoRepository.Net40.csproj @@ -58,6 +58,7 @@ + diff --git a/MongoRepository/MongoRepository.Net45.csproj b/MongoRepository/MongoRepository.Net45.csproj index db235e6..662daea 100644 --- a/MongoRepository/MongoRepository.Net45.csproj +++ b/MongoRepository/MongoRepository.Net45.csproj @@ -57,6 +57,7 @@ + diff --git a/MongoRepository/Util.cs b/MongoRepository/Util.cs index 50175dd..06e022e 100644 --- a/MongoRepository/Util.cs +++ b/MongoRepository/Util.cs @@ -3,6 +3,7 @@ using MongoDB.Driver; using System; using System.Configuration; + using System.Security.Authentication; /// /// Internal miscellaneous utility functions. @@ -30,7 +31,10 @@ public static string GetDefaultConnectionString() /// Returns a MongoDatabase from the specified url. private static MongoDatabase GetDatabaseFromUrl(MongoUrl url) { - var client = new MongoClient(url); + var settings = MongoClientSettings.FromUrl(url); + settings.SslSettings = GlobalConfig.GetSslSettings(settings.SslSettings); + + var client = new MongoClient(settings); var server = client.GetServer(); return server.GetDatabase(url.DatabaseName); // WriteConcern defaulted to Acknowledged }