public async Task DeleteEntityAsync(OIDCClientConfigurationEntity entity) { var entityInDb = _context.OIDCClientConfigurations.Find(entity.Id); if (entityInDb != null) { _context.OIDCClientConfigurations.Remove(entityInDb); await _context.SaveChangesAsync(); } }
public async Task <OIDCClientConfigurationEntity> UpsertEntityAsync( string downstreamOIDCConfigurationId, OIDCClientConfigurationEntity entity) { var utcNow = DateTime.UtcNow; OIDCClientConfigurationEntity result = null; var entityInDb = (from item in _context.OIDCClientConfigurations where item.DownstreamOIDCConfigurationFK == downstreamOIDCConfigurationId && item.Id == entity.Id select item).FirstOrDefault(); if (entityInDb != null) { // update _entityFrameworkMapperAccessor.MapperIgnoreBaseAndForeignTables.Map(entity, entityInDb); result = entity; } else { // brand new. entity.Id = GuidS; entity.Created = utcNow; entity.Updated = utcNow; entity.DownstreamOIDCConfigurationFK = downstreamOIDCConfigurationId; if (entity.RedirectUris != null) { foreach (var ru in entity.RedirectUris) { ru.Id = GuidS; ru.Created = utcNow; ru.Updated = utcNow; } } _context.OIDCClientConfigurations.Add(entity); result = entity; } await _context.SaveChangesAsync(); return(result); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure( IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider, ILogger <Startup> logger) { if (_logger is LoggerBuffered) { (_logger as LoggerBuffered).CopyToLogger(logger); } _logger = logger; _logger.LogInformation("Configure"); if (_deferedException != null) { _logger.LogError(_deferedException.Message); throw _deferedException; } if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseMigrationsEndPoint(); } else { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } if (HostingEnvironment.IsDevelopment()) { var admin = serviceProvider.GetRequiredService <IOIDCConsentOrchestratorAdmin>(); AsyncContext.Run(async() => { await admin.UpsertEntityAsync(new EntityFrameworkCore.ExternalServiceEntity { Description = "Sample External Service", Name = "sample", Authority = "https://localhost:9001/api/Consent" }); foreach (var item in OIDCOptionStore) { var entity = new DownstreamOIDCConfigurationEntity { Name = item.Key, OIDCClientConfigurations = new List <OIDCClientConfigurationEntity>() }; foreach (var clientRecord in item.Value.ClientRecords) { var oidcClientConfigurationEntity = new OIDCClientConfigurationEntity(); oidcClientConfigurationEntity.ClientId = clientRecord.Key; oidcClientConfigurationEntity.ClientSecret = clientRecord.Value.Secret; oidcClientConfigurationEntity.RedirectUris = new List <RedirectUriEntity>(); foreach (var ru in clientRecord.Value.RedirectUris) { oidcClientConfigurationEntity.RedirectUris.Add(new RedirectUriEntity { RedirectUri = ru }); } entity.OIDCClientConfigurations.Add(oidcClientConfigurationEntity); } await admin.UpsertEntityAsync(entity); } }); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseOIDCPipeline(); app.UseSession(); app.UseAuthentication(); app.UseAuthorization(); app.UseMiddleware <AuthSessionValidationMiddleware>(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapRazorPages(); }); }