public static IApplicationBuilder UseSwagger(this IApplicationBuilder builder, IConfiguration configuration, SwaggerConfigurations settings)
        {
            builder.UseSwagger();
            builder.UseSwaggerUI(options =>
            {
                options.SwaggerEndpoint(settings.GetEndpointUri(), settings.Title);
                options.OAuthAppName(settings.AuthAppName);
                options.OAuthClientId(settings.ClientId);
                options.OAuthClientSecret(settings.Secret);

                if (settings.UsePkce)
                {
                    options.OAuthUsePkce();
                }
            });

            return(builder);
        }
 public AuthorizeCheckOperationFilter(IConfiguration configuration)
 {
     this._configurations = configuration.GetConfigurations <SwaggerConfigurations>("Swagger");
 }
Exemple #3
0
        public static IServiceCollection AddSwagger(this IServiceCollection services, SwaggerConfigurations configurations)
        {
            services.AddSwaggerGen(setup =>
            {
                setup.SwaggerDoc(configurations.Version, configurations.ToOpenApi());

                foreach (var file in Directory.GetFiles(configurations.DocumentationPath, configurations.DocumentationPattern))
                {
                    setup.IncludeXmlComments(file, configurations.IncludeControllerXmlComments);
                }

                if (configurations.UseSecurity)
                {
                    setup.OperationFilter <AuthorizeCheckOperationFilter>();
                    setup.AddSecurityDefinition(configurations.SecurityDefinitions.Scheme, configurations.SecurityDefinitions.ToOpenApi());
                    setup.AddSecurityRequirement(configurations.SecurityRequeriment.ToOpenApi());
                }
            });

            services.AddSwaggerGenNewtonsoftSupport();
            return(services);
        }