Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions aspire/Money.Aspire.AppHost/Money.Aspire.AppHost.csproj

This file was deleted.

26 changes: 0 additions & 26 deletions aspire/Money.Aspire.AppHost/Program.cs

This file was deleted.

31 changes: 0 additions & 31 deletions aspire/Money.Aspire.AppHost/Properties/launchSettings.json

This file was deleted.

8 changes: 0 additions & 8 deletions aspire/Money.Aspire.AppHost/appsettings.Development.json

This file was deleted.

9 changes: 0 additions & 9 deletions aspire/Money.Aspire.AppHost/appsettings.json

This file was deleted.

92 changes: 0 additions & 92 deletions aspire/Money.Aspire.sln

This file was deleted.

86 changes: 44 additions & 42 deletions backend/Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,43 +1,45 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="OpenIddict.Client" Version="5.8.0" />
<PackageVersion Include="OpenIddict.Client.AspNetCore" Version="5.8.0" />
<PackageVersion Include="OpenIddict.Client.WebIntegration" Version="5.8.0" />
<PackageVersion Include="EFCore.NamingConventions" Version="8.0.3" />
<PackageVersion Include="Microsoft.OpenApi" Version="1.6.22" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="8.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="8.0.10" />
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="8.0.10" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.2" />
<PackageVersion Include="Microsoft.Identity.Web" Version="3.2.2" />
<PackageVersion Include="Microsoft.Identity.Web.DownstreamApi" Version="3.2.2" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.10" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.10" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.10" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.10" />
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
<PackageVersion Include="NLog.Schema" Version="5.3.4" />
<PackageVersion Include="NLog.Web.AspNetCore" Version="5.3.14" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.9.0" />
<PackageVersion Include="OpenIddict" Version="5.8.0" />
<PackageVersion Include="OpenIddict.EntityFrameworkCore" Version="5.8.0" />
<PackageVersion Include="OpenIddict.AspNetCore" Version="5.8.0" />
<PackageVersion Include="OpenIddict.Server.AspNetCore" Version="5.8.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageVersion Include="SonarAnalyzer.CSharp" Version="10.5.0.109200" />
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
<PackageVersion Include="NUnit" Version="4.2.2" />
<PackageVersion Include="NUnit.Analyzers" Version="4.3.0" />
<PackageVersion Include="NUnit3TestAdapter" Version="4.6.0" />
<PackageVersion Include="ClosedXML" Version="0.104.2" />
</ItemGroup>
</Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="8.10.0" />
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="8.2.2" />
<PackageVersion Include="OpenIddict.Client" Version="5.8.0" />
<PackageVersion Include="OpenIddict.Client.AspNetCore" Version="5.8.0" />
<PackageVersion Include="OpenIddict.Client.WebIntegration" Version="5.8.0" />
<PackageVersion Include="EFCore.NamingConventions" Version="8.0.3" />
<PackageVersion Include="Microsoft.OpenApi" Version="1.6.22" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="8.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="8.0.10" />
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="8.0.10" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.2" />
<PackageVersion Include="Microsoft.Identity.Web" Version="3.2.2" />
<PackageVersion Include="Microsoft.Identity.Web.DownstreamApi" Version="3.2.2" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.10" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.10" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.10" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.10" />
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
<PackageVersion Include="NLog.Schema" Version="5.3.4" />
<PackageVersion Include="NLog.Web.AspNetCore" Version="5.3.14" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.9.0" />
<PackageVersion Include="OpenIddict" Version="5.8.0" />
<PackageVersion Include="OpenIddict.EntityFrameworkCore" Version="5.8.0" />
<PackageVersion Include="OpenIddict.AspNetCore" Version="5.8.0" />
<PackageVersion Include="OpenIddict.Server.AspNetCore" Version="5.8.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageVersion Include="SonarAnalyzer.CSharp" Version="10.5.0.109200" />
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
<PackageVersion Include="NUnit" Version="4.2.2" />
<PackageVersion Include="NUnit.Analyzers" Version="4.3.0" />
<PackageVersion Include="NUnit3TestAdapter" Version="4.6.0" />
<PackageVersion Include="ClosedXML" Version="0.104.2" />
</ItemGroup>
</Project>
14 changes: 10 additions & 4 deletions backend/Money.Api/Controllers/ExternalAuthController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,16 @@ public async Task<IActionResult> Callback()
var userId = principal.FindFirst(OpenIddictConstants.Claims.Subject)?.Value
?? principal.FindFirst(ClaimTypes.NameIdentifier)?.Value;

// TODO: Не работает
var email = principal.FindFirst(ClaimTypes.Email)!.Value;
var email = principal.FindFirst(ClaimTypes.Email)?.Value
?? principal.FindFirst(OpenIddictConstants.Claims.Email)?.Value;

if (string.IsNullOrWhiteSpace(email))
{
return BadRequest("Email обязателен для внешней аутентификации.");
}

var name = principal.FindFirst(ClaimTypes.Name)?.Value;
var userNameCandidate = name?? BuildValidUserName(email, userId);
var userNameCandidate = name ?? BuildValidUserName(email, userId);

var providerName = result.Properties?.GetString(OpenIddictClientAspNetCoreConstants.Properties.ProviderName) ?? "GitHub";

Expand All @@ -96,7 +102,7 @@ public async Task<IActionResult> Callback()
{
UserName = uniqueUserName,
Email = email,
EmailConfirmed = email != null
EmailConfirmed = true,
};

var createResult = await userManager.CreateAsync(user);
Expand Down
37 changes: 37 additions & 0 deletions backend/Money.Api/Definitions/CoreLibDefinition.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using Microsoft.Extensions.Diagnostics.HealthChecks;

namespace Money.Api.Definitions;

public class CoreLibDefinition : AppDefinition
{
public override int ApplicationOrderIndex => -1;

public override void ConfigureServices(WebApplicationBuilder builder)
{
builder.Services.AddHealthChecks()
.AddCheck("self", () => HealthCheckResult.Healthy(), ["live"]);

builder.Services.AddServiceDiscovery();

builder.Services.ConfigureHttpClientDefaults(http =>
{
http.AddStandardResilienceHandler();
http.AddServiceDiscovery();
});
}

public override void ConfigureApplication(WebApplication app)
{
if (!app.Environment.IsDevelopment())
{
return;
}

app.MapHealthChecks("/health");

app.MapHealthChecks("/alive", new()
{
Predicate = r => r.Tags.Contains("live"),
});
}
}
3 changes: 2 additions & 1 deletion backend/Money.Api/Money.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Http.Resilience" />
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery" />
<PackageReference Include="OpenIddict.Client" />
<PackageReference Include="OpenIddict.Client.AspNetCore" />
<PackageReference Include="OpenIddict.Client.WebIntegration" />
Expand All @@ -35,7 +37,6 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\libs\Money.CoreLib\Money.CoreLib.csproj" />
<ProjectReference Include="..\Money.Business\Money.Business.csproj" />
<ProjectReference Include="..\Money.Common\Money.Common.csproj" />
<ProjectReference Include="..\Money.Data\Money.Data.csproj" />
Expand Down
5 changes: 2 additions & 3 deletions backend/Money.Api/Program.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#pragma warning disable S2139
using Money.CoreLib;
using NLog;
using NLog.Web;
using System.Globalization;
Expand All @@ -16,13 +15,13 @@

builder.Logging.ClearProviders();
builder.Host.UseNLog();
builder.AddServiceDefaults();

builder.AddDefinitions(typeof(Program));

var app = builder.Build();

app.UseDefinitions();
app.MapDefaultEndpoints();

AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);

var culture = new CultureInfo("ru-RU");
Expand Down
Loading
Loading