mirror of
https://github.com/volodymyrsmirnov/MalwareMultiScan.git
synced 2025-10-10 20:26:16 +00:00
basic architecture change: consul + hangfire
This commit is contained in:
@@ -4,7 +4,7 @@ using System.IO;
|
||||
using System.Net.Http;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MalwareMultiScan.Backends.Interfaces;
|
||||
using MalwareMultiScan.Backends.Backends.Interfaces;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Backends.Abstracts
|
||||
{
|
||||
|
@@ -2,7 +2,7 @@ using System.Text.RegularExpressions;
|
||||
using MalwareMultiScan.Backends.Backends.Abstracts;
|
||||
using MalwareMultiScan.Backends.Services.Interfaces;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Backends.Implementations
|
||||
namespace MalwareMultiScan.Backends.Backends
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public class ClamavScanBackend : AbstractLocalProcessScanBackend
|
@@ -2,7 +2,7 @@ using System.Text.RegularExpressions;
|
||||
using MalwareMultiScan.Backends.Backends.Abstracts;
|
||||
using MalwareMultiScan.Backends.Services.Interfaces;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Backends.Implementations
|
||||
namespace MalwareMultiScan.Backends.Backends
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public class ComodoScanBackend : AbstractLocalProcessScanBackend
|
@@ -2,7 +2,7 @@ using System.Text.RegularExpressions;
|
||||
using MalwareMultiScan.Backends.Backends.Abstracts;
|
||||
using MalwareMultiScan.Backends.Services.Interfaces;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Backends.Implementations
|
||||
namespace MalwareMultiScan.Backends.Backends
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public class DrWebScanBackend : AbstractLocalProcessScanBackend
|
@@ -2,9 +2,9 @@ using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MalwareMultiScan.Backends.Interfaces;
|
||||
using MalwareMultiScan.Backends.Backends.Interfaces;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Backends.Implementations
|
||||
namespace MalwareMultiScan.Backends.Backends
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public class DummyScanBackend : IScanBackend
|
@@ -3,7 +3,7 @@ using System.IO;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Interfaces
|
||||
namespace MalwareMultiScan.Backends.Backends.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Scan backend.
|
@@ -2,7 +2,7 @@ using System.Text.RegularExpressions;
|
||||
using MalwareMultiScan.Backends.Backends.Abstracts;
|
||||
using MalwareMultiScan.Backends.Services.Interfaces;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Backends.Implementations
|
||||
namespace MalwareMultiScan.Backends.Backends
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public class KesScanBackend : AbstractLocalProcessScanBackend
|
@@ -2,7 +2,7 @@ using System.Text.RegularExpressions;
|
||||
using MalwareMultiScan.Backends.Backends.Abstracts;
|
||||
using MalwareMultiScan.Backends.Services.Interfaces;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Backends.Implementations
|
||||
namespace MalwareMultiScan.Backends.Backends
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public class McAfeeScanBackend : AbstractLocalProcessScanBackend
|
@@ -2,7 +2,7 @@ using System.Text.RegularExpressions;
|
||||
using MalwareMultiScan.Backends.Backends.Abstracts;
|
||||
using MalwareMultiScan.Backends.Services.Interfaces;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Backends.Implementations
|
||||
namespace MalwareMultiScan.Backends.Backends
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public class SophosScanBackend : AbstractLocalProcessScanBackend
|
@@ -2,7 +2,7 @@ using System.Text.RegularExpressions;
|
||||
using MalwareMultiScan.Backends.Backends.Abstracts;
|
||||
using MalwareMultiScan.Backends.Services.Interfaces;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Backends.Implementations
|
||||
namespace MalwareMultiScan.Backends.Backends
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public class WindowsDefenderScanBackend : AbstractLocalProcessScanBackend
|
@@ -1,48 +0,0 @@
|
||||
namespace MalwareMultiScan.Backends.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Backend type.
|
||||
/// </summary>
|
||||
public enum BackendType
|
||||
{
|
||||
/// <summary>
|
||||
/// Dummy
|
||||
/// </summary>
|
||||
Dummy,
|
||||
|
||||
/// <summary>
|
||||
/// Windows Defender.
|
||||
/// </summary>
|
||||
Defender,
|
||||
|
||||
/// <summary>
|
||||
/// ClamAV.
|
||||
/// </summary>
|
||||
Clamav,
|
||||
|
||||
/// <summary>
|
||||
/// DrWeb.
|
||||
/// </summary>
|
||||
DrWeb,
|
||||
|
||||
/// <summary>
|
||||
/// KES.
|
||||
/// </summary>
|
||||
Kes,
|
||||
|
||||
/// <summary>
|
||||
/// Comodo.
|
||||
/// </summary>
|
||||
Comodo,
|
||||
|
||||
/// <summary>
|
||||
/// Sophos.
|
||||
/// </summary>
|
||||
Sophos,
|
||||
|
||||
/// <summary>
|
||||
/// McAfee.
|
||||
/// </summary>
|
||||
McAfee
|
||||
}
|
||||
}
|
@@ -1,9 +1,7 @@
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using EasyNetQ;
|
||||
using MalwareMultiScan.Backends.Backends.Implementations;
|
||||
using MalwareMultiScan.Backends.Enums;
|
||||
using MalwareMultiScan.Backends.Interfaces;
|
||||
using MalwareMultiScan.Backends.Backends;
|
||||
using MalwareMultiScan.Backends.Backends.Interfaces;
|
||||
using MalwareMultiScan.Backends.Services.Implementations;
|
||||
using MalwareMultiScan.Backends.Services.Interfaces;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
@@ -17,55 +15,42 @@ namespace MalwareMultiScan.Backends.Extensions
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static class ServiceCollectionExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Add RabbitMQ service.
|
||||
/// </summary>
|
||||
/// <param name="services">Service collection.</param>
|
||||
/// <param name="configuration">Configuration.</param>
|
||||
public static void AddRabbitMq(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
services.AddSingleton(x =>
|
||||
RabbitHutch.CreateBus(configuration.GetConnectionString("RabbitMQ")));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add scanning backend.
|
||||
/// </summary>
|
||||
/// <param name="services">Service collection.</param>
|
||||
/// <param name="configuration">Configuration.</param>
|
||||
/// <exception cref="ArgumentOutOfRangeException">Unknown backend.</exception>
|
||||
public static void AddScanningBackend(this IServiceCollection services, IConfiguration configuration)
|
||||
public static void AddScanBackend(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
services.AddSingleton<IProcessRunner, ProcessRunner>();
|
||||
|
||||
switch (configuration.GetValue<BackendType>("BackendType"))
|
||||
switch (configuration.GetValue<string>("BACKEND_ID"))
|
||||
{
|
||||
case BackendType.Dummy:
|
||||
services.AddSingleton<IScanBackend, DummyScanBackend>();
|
||||
break;
|
||||
case BackendType.Defender:
|
||||
services.AddSingleton<IScanBackend, WindowsDefenderScanBackend>();
|
||||
break;
|
||||
case BackendType.Clamav:
|
||||
case "clamav":
|
||||
services.AddSingleton<IScanBackend, ClamavScanBackend>();
|
||||
break;
|
||||
case BackendType.DrWeb:
|
||||
case "drweb":
|
||||
services.AddSingleton<IScanBackend, DrWebScanBackend>();
|
||||
break;
|
||||
case BackendType.Kes:
|
||||
case "kes":
|
||||
services.AddSingleton<IScanBackend, KesScanBackend>();
|
||||
break;
|
||||
case BackendType.Comodo:
|
||||
case "comodo":
|
||||
services.AddSingleton<IScanBackend, ComodoScanBackend>();
|
||||
break;
|
||||
case BackendType.Sophos:
|
||||
case "sophos":
|
||||
services.AddSingleton<IScanBackend, SophosScanBackend>();
|
||||
break;
|
||||
case BackendType.McAfee:
|
||||
case "mcafee":
|
||||
services.AddSingleton<IScanBackend, McAfeeScanBackend>();
|
||||
break;
|
||||
case "windows-defender":
|
||||
services.AddSingleton<IScanBackend, WindowsDefenderScanBackend>();
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
services.AddSingleton<IScanBackend, DummyScanBackend>();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -10,11 +10,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="EasyNetQ" Version="5.6.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.9" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.9" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.9" />
|
||||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.9" />
|
||||
<ProjectReference Include="..\MalwareMultiScan.Shared\MalwareMultiScan.Shared.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@@ -1,20 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace MalwareMultiScan.Backends.Messages
|
||||
{
|
||||
/// <summary>
|
||||
/// Scan request message.
|
||||
/// </summary>
|
||||
public class ScanRequestMessage
|
||||
{
|
||||
/// <summary>
|
||||
/// Result id.
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remote URL.
|
||||
/// </summary>
|
||||
public Uri Uri { get; set; }
|
||||
}
|
||||
}
|
@@ -1,33 +0,0 @@
|
||||
namespace MalwareMultiScan.Backends.Messages
|
||||
{
|
||||
/// <summary>
|
||||
/// Scan result message.
|
||||
/// </summary>
|
||||
public class ScanResultMessage
|
||||
{
|
||||
/// <summary>
|
||||
/// Result id.
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Backend.
|
||||
/// </summary>
|
||||
public string Backend { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Status.
|
||||
/// </summary>
|
||||
public bool Succeeded { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// List of detected threats.
|
||||
/// </summary>
|
||||
public string[] Threats { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Duration.
|
||||
/// </summary>
|
||||
public long Duration { get; set; }
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user