public static CoreConfigurer AddFreeSecurSwagger(this CoreConfigurer coreConfigurer) { var services = coreConfigurer.Services; services.AddSwaggerGen(options => { options.AddSecurityDefinition("Bearer", new Microsoft.OpenApi.Models.OpenApiSecurityScheme { Name = "Authorization", In = ParameterLocation.Header, Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey, Scheme = "Bearer" }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header, }, new List <string>() } }); }); return(coreConfigurer); }
public static CoreConfigurer AddFreeSecurLogic( this CoreConfigurer fsCoreConfigurer) { fsCoreConfigurer.Services.AddTransient <AccountManagementService>(); fsCoreConfigurer.Services.AddTransient <AccessManagementService>(); fsCoreConfigurer.Services.AddTransient <VaultCreationService>(); fsCoreConfigurer.Services.AddTransient <VaultInformationService>(); fsCoreConfigurer.Services.AddTransient <VaultItemService>(); fsCoreConfigurer.Services.AddTransient <IVerificationService, VerificationService>(); return(fsCoreConfigurer); }
public static CoreConfigurer AddFreeSecurDomain( this CoreConfigurer fsCoreConfigurer) { var settingsSection = fsCoreConfigurer.Configuration.GetSection(nameof(FsDomainSettings)); var settings = settingsSection.Get <FsDomainSettings>(); fsCoreConfigurer.Services.AddDbContext <FsDbContext>(options => { options.UseSqlServer(settings.ConnectionString); }); fsCoreConfigurer.Services.AddTransient <IFsEntityRepository, FsEntityRepository>(); return(fsCoreConfigurer); }
public static CoreConfigurer AddFreeSecurAuthentication(this CoreConfigurer fsCoreConfigurer) { var configuration = fsCoreConfigurer.Configuration; var services = fsCoreConfigurer.Services; var jwtSettingsSection = configuration .GetSection(nameof(FsJwtAuthentication)); var jwtAuthenticationSettings = jwtSettingsSection .Get <FsJwtAuthentication>(); services.Configure <FsJwtAuthentication>(jwtSettingsSection); services .AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.RequireHttpsMetadata = true; options.SaveToken = true; options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = jwtAuthenticationSettings.Issuer, ValidAudience = jwtAuthenticationSettings.Audience, IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtAuthenticationSettings.SecretKey)), ClockSkew = TimeSpan.Zero }; }); services.AddScoped <AuthenticationService>(); services.AddScoped <IAuthenticationService>(serviceProvider => serviceProvider.GetRequiredService <AuthenticationService>()); return(fsCoreConfigurer); }