MalwareMultiScan/MalwareMultiScan.Api/Extensions/ServiceCollectionExtensions.cs

36 lines
1.5 KiB
C#
Raw Normal View History

2020-10-29 12:17:09 +02:00
using System.Diagnostics.CodeAnalysis;
using System.Net;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using MongoDB.Driver;
2020-10-29 12:17:09 +02:00
using MongoDB.Driver.GridFS;
namespace MalwareMultiScan.Api.Extensions
{
2020-10-29 12:17:09 +02:00
[ExcludeFromCodeCoverage]
internal static class ServiceCollectionExtensions
{
2020-10-29 12:17:09 +02:00
internal static void AddMongoDb(this IServiceCollection services, IConfiguration configuration)
{
2020-10-29 12:17:09 +02:00
var client = new MongoClient(configuration.GetConnectionString("Mongo"));
var db = client.GetDatabase(configuration.GetValue<string>("DatabaseName"));
2020-10-29 12:17:09 +02:00
services.AddSingleton(client);
services.AddSingleton(db);
services.AddSingleton<IGridFSBucket>(new GridFSBucket(db));
}
2020-10-29 12:17:09 +02:00
internal static void AddDockerForwardedHeadersOptions(this IServiceCollection services)
{
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("::ffff:10.0.0.0"), 104));
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("::ffff:192.168.0.0"), 112));
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("::ffff:172.16.0.0"), 108));
});
}
}
}