Ejemplo n.º 1
0
        private static void ConfigureSwaggerUIOptions(SwaggerUIOptions options, IApiVersionDescriptionProvider provider)
        {
            var root = Utility.GetSetting <string>(Settings.AppRoot);

            foreach (var description in provider.ApiVersionDescriptions)
            {
                options.SwaggerEndpoint($"{root}/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant());
            }
        }
Ejemplo n.º 2
0
 private static TokenValidationParameters GetTokenValidationParameters()
 {
     return(new TokenValidationParameters
     {
         ClockSkew = TimeSpan.FromMinutes(5),
         RequireSignedTokens = true,
         RequireExpirationTime = true,
         ValidateLifetime = true,
         ValidIssuer = Utility.GetSetting <string>(Settings.JwtIssuer),
         ValidateIssuer = true,
         ValidAudience = Utility.GetSetting <string>(Settings.JwtAudience),
         ValidateAudience = true,
         IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Utility.GetSetting <string>(Settings.JwtKey))),
         ValidateIssuerSigningKey = true,
     });
 }
Ejemplo n.º 3
0
        /// <summary>
        ///     Configures services for the application.
        /// </summary>
        /// <param name="services">The application services collection.</param>
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton <ITokenFactory, TokenFactory>();
            services.AddSingleton <ITokenValidator, TokenValidator>(serviceProvider =>
                                                                    new TokenValidator(GetTokenValidationParameters()));

            var connectionString = Utility.GetSetting <string>(Settings.DbConnectionString);

            services.AddSingleton <IDbConnectionFactory, NpgsqlDbConnectionFactory>(serviceProvider =>
                                                                                    new NpgsqlDbConnectionFactory(connectionString));

            services.AddScoped <ISingleKeyRepository <Account>, AccountRepository>(serviceProvider =>
                                                                                   new AccountRepository(serviceProvider.GetService <IDbConnectionFactory>()));
            services.AddScoped <ISingleKeyRepository <RefreshToken>, RefreshTokenRepository>(serviceProvider =>
                                                                                             new RefreshTokenRepository(serviceProvider.GetService <IDbConnectionFactory>()));
            services.AddScoped <ISingleKeyRepository <Veteran>, VeteranRepository>(serviceProvider =>
                                                                                   new VeteranRepository(serviceProvider.GetService <IDbConnectionFactory>()));
            services.AddScoped <ISingleKeyRepository <Service>, ServiceRepository>(serviceProvider =>
                                                                                   new ServiceRepository(serviceProvider.GetService <IDbConnectionFactory>()));
            services.AddScoped <ISingleKeyRepository <Event>, EventRepository>(serviceProvider =>
                                                                               new EventRepository(serviceProvider.GetService <IDbConnectionFactory>()));
            services.AddScoped <ITripleKeyRepository <Scan>, ScanRepository>(serviceProvider =>
                                                                             new ScanRepository(serviceProvider.GetService <IDbConnectionFactory>()));
            services.AddScoped <IReportRepository, ReportRepository>(serviceProvider =>
                                                                     new ReportRepository(serviceProvider.GetService <IDbConnectionFactory>()));

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options => ConfigureJwtBearerOptions(options));

            services.AddCors(options => ConfigureCorsOptions(options));

            services.AddMvc()
            .AddJsonOptions(options => ConfigureJsonOptions(options));
            services.AddMvcCore()
            .AddVersionedApiExplorer(options => ConfigureApiExplorerOptions(options));

            services.AddApiVersioning(options => ConfigureApiVersioningOptions(options));

            services.AddSwaggerGen(options => ConfigureSwaggerGenOptions(options, services));
        }