Skip to content

Commit

Permalink
Centralize certificate finding
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidBoike committed Jan 31, 2025
1 parent 4013cb3 commit 56c2cea
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
namespace ServiceControl.Audit.Persistence.RavenDB
{
using System;
using System.IO;
using System.Reflection;
using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Threading.Tasks;
using Raven.Client.Documents;
Expand Down Expand Up @@ -38,21 +35,11 @@ public async Task Initialize(CancellationToken cancellationToken = default)
{
await initializeSemaphore.WaitAsync(cancellationToken);

// Look for raven-client-certificate.pfx in same directory as application code
var applicationDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location) ?? string.Empty;
var certificatePath = Path.Combine(applicationDirectory, "raven-client-certificate.pfx");
X509Certificate2? certificate = null;

if (File.Exists(certificatePath))
{
certificate = new X509Certificate2(certificatePath);
}

var store = new DocumentStore
{
Database = configuration.Name,
Urls = [configuration.ServerConfiguration.ConnectionString],
Certificate = certificate,
Certificate = RavenClientCertificate.FindClientCertificate(),
Conventions = new DocumentConventions
{
SaveEnumsAsIntegers = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
namespace ServiceControl.Persistence.RavenDB
{
using System;
using System.IO;
using System.Reflection;
using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Threading.Tasks;
using Raven.Client.Documents;
Expand Down Expand Up @@ -38,21 +35,11 @@ public async Task Initialize(CancellationToken cancellationToken)
{
await initializeSemaphore.WaitAsync(cancellationToken);

// Look for raven-client-certificate.pfx in same directory as application code
var applicationDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location) ?? string.Empty;
var certificatePath = Path.Combine(applicationDirectory, "raven-client-certificate.pfx");
X509Certificate2? certificate = null;

if (File.Exists(certificatePath))
{
certificate = new X509Certificate2(certificatePath);
}

var store = new DocumentStore
{
Database = settings.DatabaseName,
Urls = [settings.ConnectionString],
Certificate = certificate,
Certificate = RavenClientCertificate.FindClientCertificate(),
Conventions = new DocumentConventions
{
SaveEnumsAsIntegers = true
Expand Down
21 changes: 21 additions & 0 deletions src/ServiceControl.RavenDB/RavenClientCertificate.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#nullable enable

namespace ServiceControl.RavenDB;

using System.Reflection;
using System.Security.Cryptography.X509Certificates;

public static class RavenClientCertificate
{
public static X509Certificate2? FindClientCertificate()
{
var applicationDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location) ?? string.Empty;
var certificatePath = Path.Combine(applicationDirectory, "raven-client-certificate.pfx");

if (File.Exists(certificatePath))
{
return new X509Certificate2(certificatePath);
}
return null;
}
}

0 comments on commit 56c2cea

Please sign in to comment.