public void Configure(IApplicationBuilder app) { EsquioUIApiConfiguration.Configure(app, _ => _, host => { return(host.UseAuthentication().UseAuthorization()); }); }
public void ConfigureServices(IServiceCollection services) { EsquioUIApiConfiguration.ConfigureServices(services) .AddSingleton <IDiscoverToggleTypesService, DiscoverToggleTypesService>() .AddAuthorization() .AddAuthentication(setup => { setup.DefaultAuthenticateScheme = "secured"; setup.DefaultChallengeScheme = "secured"; }) .AddApiKey() .AddTestServer() .AddPolicyScheme("secured", "Authorization TestServer or ApiKey", options => { options.ForwardDefaultSelector = context => { var apiKey = context.Request.Headers["X-Api-Key"].FirstOrDefault(); if (apiKey != null) { return(ApiKeyAuthenticationDefaults.ApiKeyScheme); } return(TestServerDefaults.AuthenticationScheme);; }; }) .Services .AddDbContext <StoreDbContext>(setup => { setup.UseSqlServer(_configuration.GetConnectionString("Esquio"), opt => { opt.MigrationsAssembly(typeof(ServerFixture).Assembly.FullName); }); }); }
public void ConfigureServices(IServiceCollection services) { EsquioUIApiConfiguration.ConfigureServices(services, _configuration) .AddSingleton <IDiscoverToggleTypesService, DiscoverToggleTypesService>() .AddAuthorization() .AddAuthentication(setup => { setup.DefaultAuthenticateScheme = "secured"; setup.DefaultChallengeScheme = "secured"; }) .AddApiKey() .AddTestServer() .AddPolicyScheme("secured", "Authorization TestServer or ApiKey", options => { options.ForwardDefaultSelector = context => { var apiKey = context.Request.Headers["X-Api-Key"].FirstOrDefault(); if (apiKey != null) { return(ApiKeyAuthenticationDefaults.ApiKeyScheme); } return(TestServerDefaults.AuthenticationScheme); }; }) .Services .AddEntityFramework(_configuration, Environment); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IApiVersionDescriptionProvider apiVersion) { EsquioUIApiConfiguration.Configure(app, preConfigure: appBuilder => { appBuilder.AddClientBlazorConfiguration(); appBuilder.UseResponseCompression(); if (env.IsDevelopment()) { appBuilder.UseDeveloperExceptionPage(); } return(appBuilder.UseDefaultFiles().UseStaticFiles()); }, postConfigure: appBuilder => { return(appBuilder.UseAuthentication() .UseAuthorization() .UseBlazorFrameworkFiles() .UseSwagger() .UseSwaggerUI(setup => { setup.EnableDeepLinking(); foreach (var description in apiVersion.ApiVersionDescriptions) { setup.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName); } })); }); }
public void ConfigureServices(IServiceCollection services) { services .AddHttpClient() .AddCors() .AddTransient <IConfigureOptions <SwaggerGenOptions>, ConfigureSwaggerGenOptions>() .AddSingleton <IDiscoverToggleTypesService, DiscoverToggleTypesService>() .AddResponseCompression(options => { options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat( new[] { MediaTypeNames.Application.Octet }); }) .AddSwaggerGen() .AddApplicationInsightsTelemetry() .AddAuthentication(options => { options.DefaultScheme = "secured"; options.DefaultChallengeScheme = "secured"; }) .AddApiKey() .AddJwtBearer(options => { var securitySettings = new SecuritySettings(); Configuration.Bind("Security", securitySettings); options.Audience = securitySettings.OpenId.Audience; options.Authority = securitySettings.OpenId.Authority; options.TokenValidationParameters.ValidateIssuer = false; }) .AddPolicyScheme("secured", "Authorization Bearer or ApiKey", options => { options.ForwardDefaultSelector = context => { var bearer = context.Request .Headers["Authorization"] .FirstOrDefault(); if (bearer != null && bearer.StartsWith(JwtBearerDefaults.AuthenticationScheme)) { return(JwtBearerDefaults.AuthenticationScheme); } return(ApiKeyAuthenticationDefaults.ApiKeyScheme); }; }); EsquioUIApiConfiguration.ConfigureServices(services, Configuration) .AddEntityFramework(Configuration, Environment) .AddHostedService <EsquioMetricsConsumer>(); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IApiVersionDescriptionProvider apiVersion) { EsquioUIApiConfiguration.Configure(app, preConfigure: appBuilder => { appBuilder.AddClientBlazorConfiguration(); appBuilder.UseResponseCompression(); if (env.IsDevelopment()) { appBuilder.UseDeveloperExceptionPage(); appBuilder.UseWebAssemblyDebugging(); } return(appBuilder .UseCors(builder => { var configuredOrigins = Configuration.GetValue <string>("Cors:Origins"); if (!string.IsNullOrEmpty(configuredOrigins)) { var allowedOrigins = configuredOrigins.Split(','); builder.WithOrigins(allowedOrigins) .AllowAnyHeader() .AllowAnyMethod(); } }).UseDefaultFiles().UseStaticFiles()); }, postConfigure: appBuilder => { return(appBuilder.UseAuthentication() .UseAuthorization() .UseBlazorFrameworkFiles() .UseSwagger() .UseSwaggerUI(setup => { setup.EnableDeepLinking(); setup.OAuthScopeSeparator(" "); setup.OAuthUsePkce(); foreach (var description in apiVersion.ApiVersionDescriptions) { setup.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName); } })); }); }
public void ConfigureServices(IServiceCollection services) { services .AddSingleton <IDiscoverToggleTypesService, DiscoverToggleTypesService>() .AddAuthorization() .AddAuthentication(options => { options.DefaultScheme = "secured"; options.DefaultChallengeScheme = "secured"; }) .AddApiKey() .AddJwtBearer(options => { Configuration.Bind("Security:Jwt", options); }) .AddPolicyScheme("secured", "Authorization Bearer or ApiKey", options => { options.ForwardDefaultSelector = context => { var bearer = context.Request.Headers["Authorization"].FirstOrDefault(); if (bearer != null && bearer.StartsWith(JwtBearerDefaults.AuthenticationScheme)) { return(JwtBearerDefaults.AuthenticationScheme); } return(ApiKeyAuthenticationDefaults.ApiKeyScheme); }; }); EsquioUIApiConfiguration.ConfigureServices(services) .AddScoped <IApiKeyStore, DefaultApiKeyStore>() .AddDbContext <StoreDbContext>(options => { options.UseSqlServer(Configuration["ConnectionStrings:Esquio"], setup => { setup.MaxBatchSize(10); setup.EnableRetryOnFailure(); setup.MigrationsAssembly(typeof(Startup).Assembly.FullName); }); }); }
public void ConfigureServices(IServiceCollection services) { EsquioUIApiConfiguration.ConfigureServices(services) .AddAuthorization() .AddAuthentication(setup => { setup.DefaultAuthenticateScheme = TestServerDefaults.AuthenticationScheme; setup.DefaultChallengeScheme = TestServerDefaults.AuthenticationScheme; }) .AddTestServer() .Services .AddDbContext <StoreDbContext>(setup => { setup.UseSqlServer(_configuration.GetConnectionString("Esquio"), opt => { opt.MigrationsAssembly(typeof(ServerFixture).Assembly.FullName); }); }); }
public void ConfigureServices(IServiceCollection services) { services .AddTransient <IConfigureOptions <SwaggerGenOptions>, ConfigureSwaggerGenOptions>() .AddSingleton <IDiscoverToggleTypesService, DiscoverToggleTypesService>() .AddResponseCompression(options => { options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat( new[] { MediaTypeNames.Application.Octet }); }); services .AddSwaggerGen() .AddApplicationInsightsTelemetry() .AddAuthentication(options => { options.DefaultScheme = "secured"; options.DefaultChallengeScheme = "secured"; }) .AddApiKey() .AddJwtBearer(options => { Configuration.Bind("Security:OpenId", options); }) .AddPolicyScheme("secured", "Authorization Bearer or ApiKey", options => { options.ForwardDefaultSelector = context => { var bearer = context.Request.Headers["Authorization"].FirstOrDefault(); if (bearer != null && bearer.StartsWith(JwtBearerDefaults.AuthenticationScheme)) { return(JwtBearerDefaults.AuthenticationScheme); } return(ApiKeyAuthenticationDefaults.ApiKeyScheme); }; }); EsquioUIApiConfiguration.ConfigureServices(services) .AddEntityFramework(Configuration["ConnectionStrings:Esquio"]) .AddHostedService <EsquioMetricsConsumer>(); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { EsquioUIApiConfiguration.Configure(app, preConfigure: host => { var rewriteOptions = new RewriteOptions() .AddRewrite(@"^(?!.*(api\/|.*\.(js|css|ico)|fonts\/|img\/|static\/|swagger*|ws\/*)).*$", "index.html", skipRemainingRules: true); return(host .UseHttpsRedirection() .UseRewriter(rewriteOptions) .UseDefaultFiles() .UseStaticFiles()); }, postConfigure: host => { return(host .UseAuthentication() .UseAuthorization()); }); }