This commit is contained in:
xiaolipro 2025-11-05 18:04:05 +08:00
parent 373c5aca6e
commit 9f75b8b906
8 changed files with 57 additions and 12 deletions

View File

@ -10,7 +10,7 @@
<ItemGroup>
<ProjectReference Include="..\InterfaceForward.Application\InterfaceForward.Application.csproj" />
<ProjectReference Include="..\InterfaceForward.ServiceDefaults\InterfaceForward.ServiceDefaults.csproj"/>
<PackageReference Include="Fake.Autofac" Version="8.0.0-preview17" />
<PackageReference Include="Fake.Autofac" Version="8.0.0-preview18" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.18" />
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="10.0.0" />

View File

@ -6,8 +6,12 @@ using Fake.Autofac;
using Fake.Modularity;
using InterfaceForward.Application;
using InterfaceForward.Application.Filters;
using InterfaceForward.Domain.Shared;
using InterfaceForward.Domain.Shared.Helpers;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.AspNetCore.Mvc;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
namespace InterfaceForward.Api;
@ -36,12 +40,35 @@ public class InterfaceForwardApiModule : FakeModule
{
options.SerializerSettings.ContractResolver =
new Newtonsoft.Json.Serialization.
CamelCasePropertyNamesContractResolver(); //.DefaultContractResolver();
CamelCasePropertyNamesContractResolver(); // 首字母小写(驼峰样式)
options.SerializerSettings.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss"));
options.SerializerSettings.Converters.Add(new LongJsonConverter());
});
services.AddFakeSwaggerGen()
services.AddFakeSwaggerGen(options =>
{
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme()
{
Description = "JWT授权数据将在请求头中进行传输在下方输入Bearer {token} 即可,注意两者之间有空格",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey
});
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference()
{
Id = "Bearer",
Type = ReferenceType.SecurityScheme
}
},
[]
}
});
})
.AddFakeExceptionFilter()
.AddFakeValidationActionFilter()
.AddFakeAspNetCoreAuditing()
@ -57,6 +84,15 @@ public class InterfaceForwardApiModule : FakeModule
.AllowCredentials();
});
});
//Nginx代理的话获取真实IP
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
//新增如下两行
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
});
}
public override void ConfigureApplication(ApplicationConfigureContext context)
@ -73,7 +109,7 @@ public class InterfaceForwardApiModule : FakeModule
// Add Aspire default endpoints.
app.MapDefaultEndpoints();
app.MapControllers();
// Configure the HTTP request pipeline.
app.UseFakeSwagger();
@ -81,6 +117,12 @@ public class InterfaceForwardApiModule : FakeModule
app.UseCors(DefaultCorsPolicyName);
app.UseAuthentication();
app.UseAuthorization();
app.UseForwardedHeaders();//Nginx代理的话获取真实IP
app.MapControllers();
LogHelper.Info("Application started", true);
}

View File

@ -17,9 +17,9 @@
<PackageReference Include="DiffPlex" Version="1.7.2" />
<PackageReference Include="Aliyun.OSS.SDK.NetCore" Version="2.14.1" />
<PackageReference Include="DotNetCore.Natasha.CSharp" Version="5.2.2.1"/>
<PackageReference Include="Fake.AspNetCore" Version="8.0.0-preview17" />
<PackageReference Include="Fake.EventBus.RabbitMQ" Version="8.0.0-preview17" />
<PackageReference Include="Fake.ObjectMapping.AutoMapper" Version="8.0.0-preview17" />
<PackageReference Include="Fake.AspNetCore" Version="8.0.0-preview18" />
<PackageReference Include="Fake.EventBus.RabbitMQ" Version="8.0.0-preview18" />
<PackageReference Include="Fake.ObjectMapping.AutoMapper" Version="8.0.0-preview18" />
<PackageReference Include="FreeRedis" Version="1.3.6" />
</ItemGroup>

View File

@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace InterfaceForward.Api;
namespace InterfaceForward.Domain.Shared;
public class DateTimeJsonConverter: JsonConverter
{

View File

@ -11,6 +11,6 @@
<ItemGroup>
<PackageReference Include="Fake.DomainDrivenDesign" Version="8.0.0-preview17" />
<PackageReference Include="Fake.DomainDrivenDesign" Version="8.0.0-preview18" />
</ItemGroup>
</Project>

View File

@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace InterfaceForward.Api;
namespace InterfaceForward.Domain.Shared;
public class LongJsonConverter : JsonConverter
{

View File

@ -7,7 +7,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Fake.SqlSugarCore" Version="8.0.0-preview17" />
<PackageReference Include="Fake.SqlSugarCore" Version="8.0.0-preview18" />
<PackageReference Include="NEST" Version="7.17.5" />
</ItemGroup>

View File

@ -1,5 +1,7 @@
using InterfaceForward.Repositories.Log.ES;
using InterfaceForward.Domain.Shared;
using InterfaceForward.Repositories.Log.ES;
using Nest;
using Newtonsoft.Json;
namespace InterfaceForward.Repositories.Log.Entitys;
@ -14,6 +16,7 @@ public class LogIndex : IdBaseIndex
///<summary>
/// 请求时间
///</summary>
[JsonConverter(typeof(DateTimeJsonConverter), "yyyy-MM-dd HH:mm:ss fff")]
public DateTime RequestTime { get; set; }
///<summary>