reeplace cerberos by talos
This commit is contained in:
		
							
								
								
									
										90
									
								
								Core.Thalos.DAL.API/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								Core.Thalos.DAL.API/Program.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,90 @@ | ||||
| using Core.Blueprint.Logging.Configuration; | ||||
| using Core.Thalos.Adapters.Extensions; | ||||
| using Core.Thalos.Adapters.Helpers; | ||||
| using Core.Thalos.Provider; | ||||
| using Microsoft.AspNetCore.RateLimiting; | ||||
| using Microsoft.AspNetCore.ResponseCompression; | ||||
| using System.IO.Compression; | ||||
| using System.Reflection; | ||||
| using System.Threading.RateLimiting; | ||||
|  | ||||
| var builder = WebApplication.CreateBuilder(args); | ||||
|  | ||||
| var authSettings = AuthHelper.GetAuthSettings(builder, "thalos_dal"); | ||||
|  | ||||
| builder.Services.ConfigureAuthentication(builder.Configuration, authSettings); | ||||
|  | ||||
| builder.Configuration.AddUserSecrets(Assembly.GetExecutingAssembly()).AddEnvironmentVariables(); | ||||
|  | ||||
| // Add services to the container. | ||||
|  | ||||
| builder.Services.AddControllers(); | ||||
| // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle | ||||
| builder.Services.AddEndpointsApiExplorer(); | ||||
|  | ||||
| builder.Services.AddLogs(builder); | ||||
|  | ||||
| builder.Services.AddCors(options => | ||||
| { | ||||
|     options.AddPolicy("AllowAll", policyBuilder => | ||||
|         policyBuilder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()); | ||||
| }); | ||||
| builder.Services.AddMvc().AddJsonOptions(options => | ||||
| { | ||||
|     options.JsonSerializerOptions.WriteIndented = true; | ||||
|     options.JsonSerializerOptions.MaxDepth = 20; | ||||
|     options.JsonSerializerOptions.NumberHandling = System.Text.Json.Serialization.JsonNumberHandling.AllowNamedFloatingPointLiterals; | ||||
| }); | ||||
| builder.Services.Configure<BrotliCompressionProviderOptions>(options => | ||||
| { | ||||
|     options.Level = CompressionLevel.Fastest; | ||||
| }); | ||||
| builder.Services.Configure<GzipCompressionProviderOptions>(options => | ||||
| { | ||||
|     options.Level = CompressionLevel.SmallestSize; | ||||
| }); | ||||
| builder.Services.AddResponseCompression(options => | ||||
| { | ||||
|     options.EnableForHttps = true; | ||||
|     options.Providers.Add<BrotliCompressionProvider>(); | ||||
|     options.Providers.Add<GzipCompressionProvider>(); | ||||
| }); | ||||
|  | ||||
| builder.Services.AddRateLimiter(_ => _ | ||||
|     .AddFixedWindowLimiter("fixed", options => | ||||
|     { | ||||
|         options.PermitLimit = 5; | ||||
|         options.Window = TimeSpan.FromSeconds(10); | ||||
|         options.QueueProcessingOrder = QueueProcessingOrder.OldestFirst; | ||||
|         options.QueueLimit = 2; | ||||
|     }) | ||||
|     .AddSlidingWindowLimiter("sliding", options => | ||||
|     { | ||||
|         options.PermitLimit = 5; | ||||
|         options.Window = TimeSpan.FromSeconds(10); | ||||
|         options.SegmentsPerWindow = 5; | ||||
|         options.QueueProcessingOrder = QueueProcessingOrder.OldestFirst; | ||||
|         options.QueueLimit = 2; | ||||
|     })); | ||||
|  | ||||
| builder.Services.AddResponseCaching(); | ||||
| builder.Services.AddControllers(); | ||||
| builder.Services.AddEndpointsApiExplorer(); | ||||
| builder.Services.AddSwagger(builder.Configuration, "Core.Thalos.DAL.API.xml", authSettings); | ||||
| builder.Services.AddVersioning(builder.Configuration); | ||||
| builder.Services.AddLogging(); | ||||
| builder.Services.AddProblemDetails(); | ||||
|  | ||||
|  | ||||
| builder.Services.AddDALLayer(builder.Configuration); | ||||
|  | ||||
| var app = builder.Build(); | ||||
|  | ||||
| app.UseSwaggerUI(builder.Configuration, authSettings); | ||||
| app.ConfigureSwagger(builder.Configuration); | ||||
| app.UseLogging(builder.Configuration); | ||||
| app.UseHttpsRedirection(); | ||||
| app.UseAuthorization(); | ||||
| app.MapControllers(); | ||||
|  | ||||
| app.Run(); | ||||
		Reference in New Issue
	
	Block a user
	 Sergio Matias Urquin
					Sergio Matias Urquin