mirror of
https://github.com/bitwarden/server
synced 2025-12-06 00:03:34 +00:00
Remove X509ChainCustomization Feature (#6108)
* Remove X509ChainCustomization Feature * `dotnet format`
This commit is contained in:
@@ -1,13 +1,11 @@
|
||||
using System.Security.Cryptography;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using Bit.Core.Models.Mail;
|
||||
using Bit.Core.Platform.X509ChainCustomization;
|
||||
using Bit.Core.Services;
|
||||
using Bit.Core.Settings;
|
||||
using MailKit.Security;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Rnwood.SmtpServer;
|
||||
using Rnwood.SmtpServer.Extensions.Auth;
|
||||
using Xunit.Abstractions;
|
||||
@@ -104,8 +102,7 @@ public class MailKitSmtpMailDeliveryServiceTests
|
||||
|
||||
var mailKitDeliveryService = new MailKitSmtpMailDeliveryService(
|
||||
globalSettings,
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance,
|
||||
Options.Create(new X509ChainOptions())
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance
|
||||
);
|
||||
|
||||
await Assert.ThrowsAsync<SslHandshakeException>(
|
||||
@@ -118,117 +115,6 @@ public class MailKitSmtpMailDeliveryServiceTests
|
||||
);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task SendEmailAsync_SmtpServerUsingSelfSignedCert_CertInCustomLocation_Works()
|
||||
{
|
||||
// If an SMTP server is using a self signed cert we will in the future
|
||||
// allow a custom location for certificates to be stored and the certitifactes
|
||||
// stored there will also be trusted.
|
||||
var port = RandomPort();
|
||||
var behavior = new DefaultServerBehaviour(false, port, _selfSignedCert);
|
||||
using var smtpServer = new SmtpServer(behavior);
|
||||
smtpServer.Start();
|
||||
|
||||
var globalSettings = GetSettings(gs =>
|
||||
{
|
||||
gs.Mail.Smtp.Port = port;
|
||||
gs.Mail.Smtp.Ssl = true;
|
||||
});
|
||||
|
||||
var x509ChainOptions = new X509ChainOptions
|
||||
{
|
||||
AdditionalCustomTrustCertificates =
|
||||
[
|
||||
_selfSignedCert,
|
||||
],
|
||||
};
|
||||
|
||||
var mailKitDeliveryService = new MailKitSmtpMailDeliveryService(
|
||||
globalSettings,
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance,
|
||||
Options.Create(x509ChainOptions)
|
||||
);
|
||||
|
||||
var tcs = new TaskCompletionSource();
|
||||
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
|
||||
cts.Token.Register(() => _ = tcs.TrySetCanceled());
|
||||
|
||||
behavior.MessageReceivedEventHandler += (sender, args) =>
|
||||
{
|
||||
if (args.Message.Recipients.Contains("test1@example.com"))
|
||||
{
|
||||
tcs.SetResult();
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
};
|
||||
|
||||
await mailKitDeliveryService.SendEmailAsync(new MailMessage
|
||||
{
|
||||
Subject = "Test",
|
||||
ToEmails = ["test1@example.com"],
|
||||
TextContent = "Hi",
|
||||
}, cts.Token);
|
||||
|
||||
// Wait for email
|
||||
await tcs.Task;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task SendEmailAsync_SmtpServerUsingSelfSignedCert_CertInCustomLocation_WithUnrelatedCerts_Works()
|
||||
{
|
||||
// If an SMTP server is using a self signed cert we will in the future
|
||||
// allow a custom location for certificates to be stored and the certitifactes
|
||||
// stored there will also be trusted.
|
||||
var port = RandomPort();
|
||||
var behavior = new DefaultServerBehaviour(false, port, _selfSignedCert);
|
||||
using var smtpServer = new SmtpServer(behavior);
|
||||
smtpServer.Start();
|
||||
|
||||
var globalSettings = GetSettings(gs =>
|
||||
{
|
||||
gs.Mail.Smtp.Port = port;
|
||||
gs.Mail.Smtp.Ssl = true;
|
||||
});
|
||||
|
||||
var x509ChainOptions = new X509ChainOptions
|
||||
{
|
||||
AdditionalCustomTrustCertificates =
|
||||
[
|
||||
_selfSignedCert,
|
||||
CreateSelfSignedCert("example.com"),
|
||||
],
|
||||
};
|
||||
|
||||
var mailKitDeliveryService = new MailKitSmtpMailDeliveryService(
|
||||
globalSettings,
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance,
|
||||
Options.Create(x509ChainOptions)
|
||||
);
|
||||
|
||||
var tcs = new TaskCompletionSource();
|
||||
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
|
||||
cts.Token.Register(() => _ = tcs.TrySetCanceled());
|
||||
|
||||
behavior.MessageReceivedEventHandler += (sender, args) =>
|
||||
{
|
||||
if (args.Message.Recipients.Contains("test1@example.com"))
|
||||
{
|
||||
tcs.SetResult();
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
};
|
||||
|
||||
await mailKitDeliveryService.SendEmailAsync(new MailMessage
|
||||
{
|
||||
Subject = "Test",
|
||||
ToEmails = ["test1@example.com"],
|
||||
TextContent = "Hi",
|
||||
}, cts.Token);
|
||||
|
||||
// Wait for email
|
||||
await tcs.Task;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task SendEmailAsync_Succeeds_WhenCertIsSelfSigned_ServerIsTrusted()
|
||||
{
|
||||
@@ -249,8 +135,7 @@ public class MailKitSmtpMailDeliveryServiceTests
|
||||
|
||||
var mailKitDeliveryService = new MailKitSmtpMailDeliveryService(
|
||||
globalSettings,
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance,
|
||||
Options.Create(new X509ChainOptions())
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance
|
||||
);
|
||||
|
||||
var tcs = new TaskCompletionSource();
|
||||
@@ -296,8 +181,7 @@ public class MailKitSmtpMailDeliveryServiceTests
|
||||
|
||||
var mailKitDeliveryService = new MailKitSmtpMailDeliveryService(
|
||||
globalSettings,
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance,
|
||||
Options.Create(new X509ChainOptions())
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance
|
||||
);
|
||||
|
||||
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
|
||||
@@ -332,8 +216,7 @@ public class MailKitSmtpMailDeliveryServiceTests
|
||||
|
||||
var mailKitDeliveryService = new MailKitSmtpMailDeliveryService(
|
||||
globalSettings,
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance,
|
||||
Options.Create(new X509ChainOptions())
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance
|
||||
);
|
||||
|
||||
var tcs = new TaskCompletionSource();
|
||||
@@ -399,8 +282,7 @@ public class MailKitSmtpMailDeliveryServiceTests
|
||||
|
||||
var mailKitDeliveryService = new MailKitSmtpMailDeliveryService(
|
||||
globalSettings,
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance,
|
||||
Options.Create(new X509ChainOptions())
|
||||
NullLogger<MailKitSmtpMailDeliveryService>.Instance
|
||||
);
|
||||
|
||||
var tcs = new TaskCompletionSource();
|
||||
|
||||
Reference in New Issue
Block a user