refactor: 清理租户API旧模块代码
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user