before server asp convertion
This commit is contained in:
parent
ce99053a10
commit
a4ed1a5956
82 changed files with 3802 additions and 444 deletions
13
src/Core/Insight.Domain/Extensions/Configuration.cs
Normal file
13
src/Core/Insight.Domain/Extensions/Configuration.cs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace Insight.Domain.Extensions;
|
||||
|
||||
public static class ConfigurationExtensions
|
||||
{
|
||||
public static IConfigurationBuilder Defaults(this IConfigurationBuilder configuration)
|
||||
{
|
||||
configuration.Sources.Clear();
|
||||
configuration.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
|
||||
return configuration.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true);
|
||||
}
|
||||
}
|
||||
31
src/Core/Insight.Domain/Extensions/Linux.cs
Normal file
31
src/Core/Insight.Domain/Extensions/Linux.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
using System.Diagnostics;
|
||||
using System.Runtime.Versioning;
|
||||
|
||||
namespace Insight.Domain.Extensions;
|
||||
|
||||
public static class Linux
|
||||
{
|
||||
[SupportedOSPlatform("linux")]
|
||||
public static string Bash(this string cmd)
|
||||
{
|
||||
var escaped = cmd.Replace("\"", "\\\"");
|
||||
|
||||
using var proc = new Process()
|
||||
{
|
||||
StartInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = "/bin/bash",
|
||||
Arguments = $"-c \"{escaped}\"",
|
||||
RedirectStandardOutput = true,
|
||||
UseShellExecute = false,
|
||||
CreateNoWindow = true,
|
||||
}
|
||||
};
|
||||
|
||||
proc.Start();
|
||||
var result = proc.StandardOutput.ReadToEnd();
|
||||
proc.WaitForExit();
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -17,9 +17,8 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.0" />
|
||||
<PackageReference Include="Vaitr.Bus" Version="2023.12.15.1" />
|
||||
<PackageReference Include="Vaitr.Network" Version="2023.12.16" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
|
||||
<PackageReference Include="Vaitr.Network" Version="2024.1.8" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -1,6 +1,4 @@
|
|||
using AspNetCore.Identity.MongoDbCore.Extensions;
|
||||
using AspNetCore.Identity.MongoDbCore.Infrastructure;
|
||||
using Insight.Infrastructure.Entities;
|
||||
using Insight.Infrastructure.Entities;
|
||||
using Insight.Infrastructure.Services;
|
||||
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
|
|
@ -21,10 +19,10 @@ public static partial class ServiceExtensions
|
|||
public static IServiceCollection AddTokenServices(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
var options = new Models.TokenOptions(
|
||||
key: configuration.GetValue<string?>(Appsettings.JwtKey) ?? throw new Exception($"{Appsettings.JwtKey} value not set (appsettings)"),
|
||||
expires: configuration.GetValue<int?>(Appsettings.JwtExp) ?? throw new Exception($"{Appsettings.JwtExp} value not set (appsettings)"),
|
||||
audience: configuration.GetValue<Uri?>(Appsettings.JwtAudience) ?? throw new Exception($"{Appsettings.JwtAudience} value not set (appsettings)"),
|
||||
issuer: configuration.GetValue<Uri?>(Appsettings.JwtIssuer) ?? throw new Exception($"{Appsettings.JwtIssuer} value not set (appsettings)"));
|
||||
key: configuration.GetValue<string?>(Appsettings.Jwt.Key) ?? throw new Exception($"{Appsettings.Jwt.Key} value not set (appsettings)"),
|
||||
expires: configuration.GetValue<int?>(Appsettings.Jwt.Exp) ?? throw new Exception($"{Appsettings.Jwt.Exp} value not set (appsettings)"),
|
||||
audience: configuration.GetValue<Uri?>(Appsettings.Jwt.Audience) ?? throw new Exception($"{Appsettings.Jwt.Audience} value not set (appsettings)"),
|
||||
issuer: configuration.GetValue<Uri?>(Appsettings.Jwt.Issuer) ?? throw new Exception($"{Appsettings.Jwt.Issuer} value not set (appsettings)"));
|
||||
|
||||
services.AddSingleton(options);
|
||||
services.AddTransient<TokenService>();
|
||||
|
|
@ -56,7 +54,7 @@ public static partial class ServiceExtensions
|
|||
|
||||
public static IServiceCollection AddIdentityServices(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
var connectionString = configuration.GetValue<string?>(Appsettings.Database) ?? throw new Exception($"{Appsettings.Database} value not set (appsettings)");
|
||||
var connectionString = configuration.GetValue<string?>(Appsettings.Mongo.ConnectionString) ?? throw new Exception($"{Appsettings.Mongo.ConnectionString} value not set (appsettings)");
|
||||
|
||||
services.AddIdentity<InsightUser, InsightRole>(options =>
|
||||
{
|
||||
|
|
@ -146,14 +144,14 @@ public static partial class ServiceExtensions
|
|||
|
||||
options.TokenValidationParameters.ValidateActor = false;
|
||||
|
||||
options.TokenValidationParameters.ValidAudience = configuration.GetValue<string?>(Appsettings.JwtAudience) ?? throw new Exception($"{Appsettings.JwtAudience} value not set (appsettings)");
|
||||
options.TokenValidationParameters.ValidAudience = configuration.GetValue<string?>(Appsettings.Jwt.Audience) ?? throw new Exception($"{Appsettings.Jwt.Audience} value not set (appsettings)");
|
||||
options.TokenValidationParameters.ValidateAudience = true;
|
||||
|
||||
options.TokenValidationParameters.ValidIssuer = configuration.GetValue<string?>(Appsettings.JwtIssuer) ?? throw new Exception($"{Appsettings.JwtIssuer} value not set (appsettings)");
|
||||
options.TokenValidationParameters.ValidIssuer = configuration.GetValue<string?>(Appsettings.Jwt.Issuer) ?? throw new Exception($"{Appsettings.Jwt.Issuer} value not set (appsettings)");
|
||||
options.TokenValidationParameters.ValidateIssuer = true;
|
||||
|
||||
options.TokenValidationParameters.IssuerSigningKey = new SymmetricSecurityKey(
|
||||
Encoding.UTF8.GetBytes(configuration.GetValue<string?>(Appsettings.JwtKey) ?? throw new Exception($"{Appsettings.JwtKey} value not set (appsettings)"))
|
||||
Encoding.UTF8.GetBytes(configuration.GetValue<string?>(Appsettings.Jwt.Key) ?? throw new Exception($"{Appsettings.Jwt.Key} value not set (appsettings)"))
|
||||
);
|
||||
|
||||
options.TokenValidationParameters.ValidateIssuerSigningKey = true;
|
||||
|
|
|
|||
|
|
@ -12,13 +12,12 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="7.0.3" />
|
||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="7.0.3" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.1" />
|
||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="7.1.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Insight.Domain\Insight.Domain.csproj" />
|
||||
<ProjectReference Include="..\Insight.Infrastructure\Insight.Infrastructure.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,58 @@
|
|||
namespace Insight.Infrastructure;
|
||||
|
||||
public class Appsettings
|
||||
public static class Appsettings
|
||||
{
|
||||
public const string Database = "database";
|
||||
public const string JwtKey = "jwt.key";
|
||||
public const string JwtAudience = "jwt.audience";
|
||||
public const string JwtIssuer = "jwt.issuer";
|
||||
public const string JwtExp = "jwt.exp";
|
||||
public static class Mongo
|
||||
{
|
||||
public const string ConnectionString = "mongo.connection";
|
||||
}
|
||||
|
||||
public const string ServerHost = "server.host";
|
||||
public const string ServerPort = "server.port";
|
||||
public static class Influx
|
||||
{
|
||||
public const string Endpoint = "influx.endpoint";
|
||||
public const string Token = "influx.token";
|
||||
public const string Organization = "influx.org";
|
||||
public const string Bucket = "influx.bucket";
|
||||
public const string Service = "influx.service";
|
||||
}
|
||||
|
||||
public const string RemoteServerPort = "remote.port";
|
||||
public const string RemoteServerCertificate = "remote.certificate";
|
||||
public const string RemoteServerCertificatePassword = "remote.certificate.password";
|
||||
public static class Jwt
|
||||
{
|
||||
public const string Key = "jwt.key";
|
||||
public const string Audience = "jwt.audience";
|
||||
public const string Issuer = "jwt.issuer";
|
||||
public const string Exp = "jwt.exp";
|
||||
}
|
||||
|
||||
public static class Backend
|
||||
{
|
||||
public const string Host = "server.host";
|
||||
public const string Port = "server.port";
|
||||
}
|
||||
|
||||
public static class Agent
|
||||
{
|
||||
public const string Port = "agent.port";
|
||||
public const string Certificate = "agent.certificate";
|
||||
public const string CertificatePassword = "agent.certificate.password";
|
||||
}
|
||||
|
||||
public static class Web
|
||||
{
|
||||
public const string Port = "web.port";
|
||||
public const string Certificate = "web.certificate";
|
||||
public const string CertificatePassword = "web.certificate.password";
|
||||
}
|
||||
|
||||
public static class Remote
|
||||
{
|
||||
public const string Port = "remote.port";
|
||||
public const string Certificate = "remote.certificate";
|
||||
public const string CertificatePassword = "remote.certificate.password";
|
||||
}
|
||||
|
||||
public static class Dispatch
|
||||
{
|
||||
public const string Webmatic = "dispatch.webmatic";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace Insight.Infrastructure;
|
||||
|
||||
public static class ConfigurationExtensions
|
||||
{
|
||||
public static IConfigurationBuilder Defaults(this IConfigurationBuilder configuration)
|
||||
{
|
||||
configuration.Sources.Clear();
|
||||
configuration.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
|
||||
return configuration.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true);
|
||||
}
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@ public static partial class ServiceExtensions
|
|||
{
|
||||
public static IServiceCollection AddDatabase(this IServiceCollection services, IConfiguration configuration, ILoggerFactory? loggerFactory = null)
|
||||
{
|
||||
var connectionString = configuration.GetValue<string?>(Appsettings.Database) ?? throw new Exception($"{Appsettings.Database} value not set (appsettings)");
|
||||
var connectionString = configuration.GetValue<string?>(Appsettings.Mongo.ConnectionString) ?? throw new Exception($"{Appsettings.Mongo.ConnectionString} value not set (appsettings)");
|
||||
|
||||
var settings = MongoClientSettings.FromUrl(new MongoUrl(connectionString));
|
||||
settings.ConnectTimeout = TimeSpan.FromSeconds(3);
|
||||
|
|
|
|||
|
|
@ -12,14 +12,10 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
|
||||
<PackageReference Include="AspNetCore.Identity.MongoDbCore" Version="3.1.2" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
|
||||
<PackageReference Include="MongoDB.Driver" Version="2.23.1" />
|
||||
<PackageReference Include="Vaitr.Scheduler" Version="2023.12.15.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Insight.Domain\Insight.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
using Insight.Infrastructure.Entities;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using MongoDB.Driver;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
using System.Text.Encodings.Web;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
using Insight.Infrastructure.Entities;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System.Security.Claims;
|
||||
|
||||
namespace Insight.Infrastructure.Services;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue