refactor: 清理租户API旧模块代码

This commit is contained in:
2026-02-17 09:57:26 +08:00
parent 2711893474
commit 992930a821
924 changed files with 7 additions and 191722 deletions

View File

@@ -4,23 +4,14 @@ using Microsoft.AspNetCore.Mvc;
using TakeoutSaaS.Shared.Abstractions.Security;
using TakeoutSaaS.Shared.Abstractions.Serialization;
using TakeoutSaaS.Shared.Web.Filters;
using TakeoutSaaS.Shared.Web.Security;
using Microsoft.AspNetCore.Cors.Infrastructure;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
using Serilog;
using TakeoutSaaS.Application.App.Extensions;
using TakeoutSaaS.Application.Dictionary.Extensions;
using TakeoutSaaS.Application.Identity.Extensions;
using TakeoutSaaS.Application.Messaging.Extensions;
using TakeoutSaaS.Infrastructure.App.Extensions;
using TakeoutSaaS.Infrastructure.Dictionary.Extensions;
using TakeoutSaaS.Infrastructure.Identity.Extensions;
using TakeoutSaaS.Module.Authorization.Extensions;
using TakeoutSaaS.Module.Messaging.Extensions;
using TakeoutSaaS.Module.Tenancy.Extensions;
using TakeoutSaaS.Shared.Web.Extensions;
using TakeoutSaaS.Shared.Web.Security;
using TakeoutSaaS.Shared.Web.Swagger;
// 1. 创建构建器与日志模板
@@ -86,29 +77,11 @@ if (isDevelopment)
}
// 5. 注册鉴权授权与权限策略
builder.Services.AddJwtAuthentication(builder.Configuration);
builder.Services.AddAuthorization();
builder.Services.AddPermissionAuthorization();
builder.Services.AddHealthChecks();
// 6. 注册应用层与基础设施(仅租户侧所需)
builder.Services.AddAppApplication();
builder.Services.AddIdentityApplication(enableMiniSupport: false);
builder.Services.AddAppInfrastructure(builder.Configuration);
builder.Services.AddIdentityInfrastructure(builder.Configuration, enableMiniFeatures: false, enableAdminSeed: false);
// 7. 注册多租户解析(依赖 ITenantRepository需在 Infrastructure 之后)
builder.Services.AddTenantResolution(builder.Configuration);
// 6. (空行后) 注册字典模块(系统参数、字典项、缓存等)
builder.Services.AddDictionaryApplication();
builder.Services.AddDictionaryInfrastructure(builder.Configuration);
// 6. (空行后) 注册消息发布能力(未配置 RabbitMQ 时自动降级为 NoOp 实现)
builder.Services.AddMessagingApplication();
builder.Services.AddMessagingModule(builder.Configuration);
// 7. 配置 OpenTelemetry 采集
// 6. 配置 OpenTelemetry 采集
var otelSection = builder.Configuration.GetSection("Otel");
var otelEndpoint = otelSection.GetValue<string>("Endpoint");
var useConsoleExporter = otelSection.GetValue<bool?>("UseConsoleExporter") ?? builder.Environment.IsDevelopment();
@@ -160,7 +133,7 @@ builder.Services.AddOpenTelemetry()
}
});
// 8. 配置 CORS
// 7. 配置 CORS
var tenantOrigins = ResolveCorsOrigins(builder.Configuration, "Cors:Tenant");
builder.Services.AddCors(options =>
{
@@ -170,23 +143,17 @@ builder.Services.AddCors(options =>
});
});
// 9. 构建应用并配置中间件管道
// 8. 构建应用并配置中间件管道
var app = builder.Build();
app.UseCors("TenantApiCors");
// 1. (空行后) 先完成身份认证,确保租户解析优先使用 Token Claim
app.UseAuthentication();
// 2. (空行后) 解析并注入租户上下文(已认证请求不允许 Header 覆盖)
app.UseTenantResolution();
// 3. (空行后) 通用 Web Core 中间件异常、ProblemDetails、日志等
// 1. (空行后) 通用 Web Core 中间件异常、ProblemDetails、日志等
app.UseSharedWebCore();
// 4. (空行后) 执行授权
// 2. (空行后) 执行授权
app.UseAuthorization();
// 5. (空行后) 开发环境启用 Swagger
// 3. (空行后) 开发环境启用 Swagger
if (app.Environment.IsDevelopment())
{
app.UseSharedSwagger();