diff --git a/backend/src/Squidex.Data.MongoDb/MongoClientFactory.cs b/backend/src/Squidex.Data.MongoDb/MongoClientFactory.cs index 2ae3301c4..586f8f323 100644 --- a/backend/src/Squidex.Data.MongoDb/MongoClientFactory.cs +++ b/backend/src/Squidex.Data.MongoDb/MongoClientFactory.cs @@ -8,6 +8,7 @@ using System.Text.Json; using MongoDB.Bson; using MongoDB.Driver; +using MongoDB.Driver.Authentication.AWS; using Squidex.Domain.Apps.Core.Contents; using Squidex.Domain.Apps.Entities; using Squidex.Domain.Apps.Entities.Assets; @@ -23,6 +24,8 @@ namespace Squidex; public static class MongoClientFactory { + private static int awsAuthenticationRegistered; + public static void SetupSerializer(JsonSerializerOptions jsonSerializerOptions, BsonType representation) { // Register the serializers first. @@ -53,6 +56,11 @@ public static class MongoClientFactory public static MongoClient Create(string? connectionString, Action? configure = null) { + if (Interlocked.Exchange(ref awsAuthenticationRegistered, 1) == 0) + { + MongoClientSettings.Extensions.AddAWSAuthentication(); + } + var clientSettings = MongoClientSettings.FromConnectionString(connectionString); // If we really need custom config. diff --git a/backend/src/Squidex.Data.MongoDb/Squidex.Data.MongoDb.csproj b/backend/src/Squidex.Data.MongoDb/Squidex.Data.MongoDb.csproj index 6e32dfbfe..9504e6a67 100644 --- a/backend/src/Squidex.Data.MongoDb/Squidex.Data.MongoDb.csproj +++ b/backend/src/Squidex.Data.MongoDb/Squidex.Data.MongoDb.csproj @@ -21,6 +21,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive +