public static void AddAuthenticationConfig(this SwaggerGenOptions c, AuthenticationType authenticationType)
        {
            switch (authenticationType)
            {
            case AuthenticationType.JwtBearer:
                var tokenPath = TokenConfiguration.GetOptions().Value.Path;
                c.DocumentFilter <TokenOperation>();
                c.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme, c.GetTokenSecurityDefinition(tokenPath));
                c.AddSecurityRequirement(c.GetTokenSecurityRequirement());
                break;

            case AuthenticationType.Basic:
                c.AddSecurityDefinition(BasicAuthenticationDefaults.AuthenticationScheme, c.GetBasicSecurityDefinition());
                c.AddSecurityRequirement(c.GetBasicSecurityRequirement());
                break;

            case AuthenticationType.ApiKey:
                c.AddSecurityDefinition(ApiKeyAuthenticationDefaults.AuthenticationScheme, c.GetApiKeySecurityDefinition());
                c.AddSecurityRequirement(c.GetApiKeySecurityRequirement());
                break;

            case AuthenticationType.AllowAll:
                break;

            default: throw new ArgumentException(nameof(authenticationType) + " is not a valid authentication type");
            }
        }
Пример #2
0
        public static void Configure(SwaggerGenOptions options)
        {
            options.AddSecurityDefinition("apiKeyAuth", new OpenApiSecurityScheme {
                Name = "X-SRS-API-KEY",
                Type = SecuritySchemeType.ApiKey,
                In   = ParameterLocation.Header,
            });

            options.AddSecurityDefinition("basicAuth", new OpenApiSecurityScheme {
                Name   = "Authorization",
                Type   = SecuritySchemeType.Http,
                In     = ParameterLocation.Header,
                Scheme = "basic"
            });

            options.AddSecurityDefinition("signAuth", new OpenApiSecurityScheme {
                Name   = "Authorization",
                Type   = SecuritySchemeType.Http,
                In     = ParameterLocation.Header,
                Scheme = "SIGN"
            });

            options.AddSecurityRequirement(new OpenApiSecurityRequirement {
                {
                    new OpenApiSecurityScheme {
                        Reference = new OpenApiReference {
                            Type = ReferenceType.SecurityScheme, Id = "apiKeyAuth"
                        }
                    },
                    Array.Empty <string>()
                }
            });

            options.AddSecurityRequirement(new OpenApiSecurityRequirement {
                {
                    new OpenApiSecurityScheme {
                        Reference = new OpenApiReference {
                            Type = ReferenceType.SecurityScheme, Id = "basicAuth"
                        }
                    },
                    Array.Empty <string>()
                }
            });
            options.AddSecurityRequirement(new OpenApiSecurityRequirement {
                {
                    new OpenApiSecurityScheme {
                        Reference = new OpenApiReference {
                            Type = ReferenceType.SecurityScheme, Id = "signAuth"
                        }
                    },
                    Array.Empty <string>()
                }
            });

            options.OperationFilter <SecurityRequirementsOperationFilter>();
        }
Пример #3
0
        /// <summary>
        /// 配置授权
        /// </summary>
        /// <param name="swaggerGenOptions">Swagger 生成器配置</param>
        private static void ConfigureSecurities(SwaggerGenOptions swaggerGenOptions)
        {
            // 判断是否启用了授权
            if (_specificationDocumentSettings.EnableAuthorized != true || _specificationDocumentSettings.SecurityDefinitions.Length == 0)
            {
                return;
            }

            var openApiSecurityRequirement = new OpenApiSecurityRequirement();

            swaggerGenOptions.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        }
                    },
                    new string[] { }
                }
            });
            // 生成安全定义
            foreach (var securityDefinition in _specificationDocumentSettings.SecurityDefinitions)
            {
                // Id 必须定义
                if (string.IsNullOrEmpty(securityDefinition.Id))
                {
                    continue;
                }

                // 添加安全定义
                var openApiSecurityScheme = securityDefinition as OpenApiSecurityScheme;
                swaggerGenOptions.AddSecurityDefinition(securityDefinition.Id, openApiSecurityScheme);

                // 添加安全需求
                var securityRequirement = securityDefinition.Requirement;

                if (securityRequirement.Scheme.Reference != null)
                {
                    securityRequirement.Scheme.Reference.Id ??= securityDefinition.Id;
                    openApiSecurityRequirement.Add(securityRequirement.Scheme, securityRequirement.Accesses);
                }
            }

            // 添加安全需求
            if (openApiSecurityRequirement.Count > 0)
            {
                swaggerGenOptions.AddSecurityRequirement(openApiSecurityRequirement);
            }
        }
Пример #4
0
        private static void AddSecurityDefinitionAndRequirements(OpenApiSettings openApiSettings, SwaggerGenOptions options)
        {
            if (openApiSettings.Security != null)
            {
                options.AddSecurityDefinition(openApiSettings.Security.Scheme,
                                              new OpenApiSecurityScheme
                {
                    Description  = openApiSettings.Security.Description,
                    Name         = openApiSettings.Security.Name,
                    In           = ParameterLocation.Header,
                    Scheme       = openApiSettings.Security.Scheme,
                    Type         = openApiSettings.Security.SchemeType,
                    BearerFormat = openApiSettings.Security.BearerFormat
                });

                options.AddSecurityRequirement(new OpenApiSecurityRequirement
                {
                    {
                        new OpenApiSecurityScheme
                        {
                            Reference = new OpenApiReference {
                                Type = ReferenceType.SecurityScheme, Id = openApiSettings.Security.Scheme
                            }
                        },
                        new List <string>()
                    }
                });
            }
        }
Пример #5
0
        public static SwaggerGenOptions ConfigureSecurityDefinition(this SwaggerGenOptions options)
        {
            options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Description = "Type into the textbox: Bearer {your JWT token}.",
                Name        = "Authorization",
                In          = ParameterLocation.Header,
                Type        = SecuritySchemeType.ApiKey,
            });

            var security =
                new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Id   = "Bearer",
                            Type = ReferenceType.SecurityScheme
                        },
                        UnresolvedReference = true
                    },
                    new string[] {}
                }
            };

            options.AddSecurityRequirement(security);

            return(options);
        }
Пример #6
0
        private static void AddBasicSecurityDefinition(this SwaggerGenOptions c)
        {
            // https://thecodebuzz.com/basic-authentication-swagger-asp-net-core-3-0/
            c.AddSecurityDefinition("basic", new OpenApiSecurityScheme
            {
                Name        = "Authorization",
                Type        = SecuritySchemeType.Http,
                Scheme      = "basic",
                In          = ParameterLocation.Header,
                Description = "Basic Authorization header using the Bearer scheme."
            });

            c.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "basic"
                        }
                    },
                    new string[] { }
                }
            });
        }
Пример #7
0
        private static void ConfigureSwaggerGenOptions(SwaggerGenOptions options, IServiceCollection services)
        {
            var provider = services.BuildServiceProvider().GetRequiredService <IApiVersionDescriptionProvider>();

            foreach (var description in provider.ApiVersionDescriptions)
            {
                options.SwaggerDoc(description.GroupName, CreateInfoForApiVersion(description));
            }

            options.DocInclusionPredicate((docName, apiDesc) =>
            {
                var versions = apiDesc.ControllerAttributes()
                               .OfType <ApiVersionAttribute>()
                               .SelectMany(attr => attr.Versions);

                return(versions.Any(v => $"v{v.ToString()}" == docName));
            });

            options.IncludeXmlComments(GetXmlCommentsFilePath());

            var apiKeyScheme = new ApiKeyScheme()
            {
                Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
                Name        = "Authorization",
                In          = "header",
                Type        = "apiKey",
            };

            options.AddSecurityDefinition("Bearer", apiKeyScheme);

            options.AddSecurityRequirement(new Dictionary <string, IEnumerable <string> >
            {
                { "Bearer", new string[] { } }
            });
        }
        public static void AddBearerToken(this SwaggerGenOptions swaggerGenOptions)
        {
            swaggerGenOptions.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Description =
                    "Please enter into field the word 'Bearer' following by space and JWT. Example: \"Authorization: Bearer {token}\"",
                Name   = "Authorization",
                In     = ParameterLocation.Header,
                Type   = SecuritySchemeType.ApiKey,
                Scheme = "Bearer"
            });

            swaggerGenOptions.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        },
                        Scheme = "oauth2",
                        Name   = "Bearer",
                        In     = ParameterLocation.Header
                    },
                    new List <string>()
                }
            });
        }
        public static void AddSecuritySchemas(this SwaggerGenOptions options)
        {
            options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme()
            {
                Description = "Adquira aqui seu token: Bearer {seu token}",
                Name        = "Authorization",
                In          = ParameterLocation.Header,
                Type        = SecuritySchemeType.ApiKey
            });

            options.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        },
                        Scheme = "oauth2",
                        Name   = "Bearer",
                        In     = ParameterLocation.Header,
                        Type   = SecuritySchemeType.ApiKey
                    },
                    new List <string>()
                }
            });
        }
 private static void AddJwtBearerSecurity(this SwaggerGenOptions options)
 {
     options.AddSecurityDefinition(
         JwtBearerDefaults.AuthenticationScheme,
         new OpenApiSecurityScheme
     {
         Name = "Authorization",
         In   = ParameterLocation.Header
     });
     options.AddSecurityRequirement(
         new OpenApiSecurityRequirement
     {
         {
             new OpenApiSecurityScheme
             {
                 Reference = new OpenApiReference
                 {
                     Type = ReferenceType.SecurityScheme,
                     Id   = JwtBearerDefaults.AuthenticationScheme
                 }
             },
             new string[] {}
         }
     });
 }
Пример #11
0
        public static void AddDefaultOptions(this SwaggerGenOptions options)
        {
            options.DescribeAllEnumsAsStrings();

            options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Description = "Авторизация с помощью JWT токена.  <b>Пример: Bearer -token-</b>",
                Name        = "Authorization",
                In          = ParameterLocation.Header,
                Type        = SecuritySchemeType.ApiKey
            });

            var security = new OpenApiSecurityRequirement()
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        },
                        Scheme = "oauth2",
                        Name   = "Bearer",
                        In     = ParameterLocation.Header,
                    },
                    new List <string>()
                }
            };

            options.AddSecurityRequirement(security);
        }
Пример #12
0
        public static void Configure(SwaggerGenOptions swaggerOptions, string secretKey)
        {
            swaggerOptions.DescribeAllParametersInCamelCase();
            swaggerOptions.OrderActionsBy(x => x.RelativePath);

            swaggerOptions.AddSecurityDefinition("ApiKey", new OpenApiSecurityScheme
            {
                Description = "ApiKey needed to access the endpoints (eg: `Authorization: ApiKey xxx-xxx`)",
                In          = ParameterLocation.Header,
                Name        = "Authorization",
                Type        = SecuritySchemeType.ApiKey,
            });

            swaggerOptions.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Name      = "ApiKey",
                        Type      = SecuritySchemeType.ApiKey,
                        In        = ParameterLocation.Header,
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "ApiKey",
                        },
                    },
                    Array.Empty <string>()
                }
            });
        }
        private static void AddSecurity(this SwaggerGenOptions options)
        {
            var authName = "myBasicAuth";

            options.AddSecurityDefinition(authName, new OpenApiSecurityScheme()
            {
                Type        = SecuritySchemeType.Http,
                Scheme      = "basic",
                Description = "Input your username and password to access this API"
            });

            options.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = authName
                        }
                    }, new List <string>()
                }
            });
        }
 private static void AddSwaggerSecurity(SwaggerGenOptions swaggerOptions, OpenApiInfo swaggerDocumentationSettings)
 {
     if (swaggerDocumentationSettings.Extensions.TryGetValue("TokenUrl", out IOpenApiExtension t) &&
         t is OpenApiString tokenUrl)
     {
         swaggerOptions.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
         {
             Type  = SecuritySchemeType.OAuth2,
             Flows = new OpenApiOAuthFlows()
             {
                 Password = new OpenApiOAuthFlow()
                 {
                     TokenUrl = new Uri(tokenUrl?.Value)
                 }
             }
         });
         swaggerOptions.AddSecurityRequirement(new OpenApiSecurityRequirement()
         {
             {
                 new OpenApiSecurityScheme
                 {
                     Reference = new OpenApiReference
                     {
                         Id   = "Bearer",
                         Type = ReferenceType.SecurityScheme
                     }
                 },
                 new List <string>()
             }
         });
     }
 }
        public static void ApplySecurityDefinition(this SwaggerGenOptions genOptions)
        {
            var security = new OpenApiSecurityRequirement()
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        },
                        Scheme = "oauth2",
                        Name   = "Bearer",
                        In     = ParameterLocation.Header,
                    },
                    new List <string>()
                }
            };

            genOptions.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Description = @"JWT Authorization header using the Bearer scheme. 
                      Enter 'Bearer' [space] and then your token in the text input below.
                      Example: 'Bearer 12345abcdef'",
                Name        = "Authorization",
                In          = ParameterLocation.Header,
                Type        = SecuritySchemeType.ApiKey
            });
            genOptions.AddSecurityRequirement(security);
        }
Пример #16
0
        private void AddAuthenticationParameter(SwaggerGenOptions c)
        {
            c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
                Name        = "Authorization",
                In          = ParameterLocation.Header,
                Type        = SecuritySchemeType.ApiKey
            });
            c.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme {
                        Reference = new OpenApiReference
                        {
                            Id   = "Bearer",
                            Type = ReferenceType.SecurityScheme
                        }
                    },
                    new List <string>()
                }
            });

            //c.OperationFilter<AddHeaderParameter>();
        }
Пример #17
0
        public static void Configure(this SwaggerGenOptions options)
        {
            options.DocInclusionPredicate((docName, apiDesc) =>
            {
                var actionApiVersionModel = apiDesc.ActionDescriptor?.GetApiVersion();
                if (actionApiVersionModel == null)
                {
                    return(true);
                }
                if (actionApiVersionModel.DeclaredApiVersions.Any())
                {
                    return(actionApiVersionModel.DeclaredApiVersions.Any(v => $"v{v.ToString()}" == docName));
                }

                return(actionApiVersionModel.ImplementedApiVersions.Any(v => $"v{v.ToString()}" == docName));
            });

            options.SwaggerDoc("v1.0", new Info {
                Title = "API", Version = "v1.0"
            });
            options.SwaggerDoc("v1.1", new Info {
                Title = "API", Version = "v1.1"
            });
            options.OperationFilter <SwaggerApiVersionOperationFilter>();

            options.AddSecurityDefinition("Bearer",
                                          new ApiKeyScheme {
                In          = "header",
                Description = "Please enter into field the word 'Bearer' following by space and JWT",
                Name        = "Authorization", Type = "apiKey"
            });
            options.AddSecurityRequirement(new Dictionary <string, IEnumerable <string> > {
                { "Bearer", Enumerable.Empty <string>() },
            });
        }
 /// <summary>
 /// Aggiunge la parte relativa alla security delle API
 /// </summary>
 /// <param name="options"></param>
 public static void AddSecurityConfiguration(this SwaggerGenOptions options)
 {
     options.AddSecurityDefinition("Bearer",
                                   new OpenApiSecurityScheme
     {
         In          = ParameterLocation.Header,
         Description = "Please enter into field the word 'bearer' following by space and access token",
         Name        = "Authorization",
         Type        = 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>()
         }
     });
 }
        private static void ConfigureDevelopmentSecurity(SwaggerGenOptions options)
        {
            options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Description  = "JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below.\r\n\r\nExample: \"Bearer 12345abcdef.23fdeeecxxXE...\"",
                Name         = "Authorization",
                In           = ParameterLocation.Header,
                Type         = SecuritySchemeType.ApiKey,
                Scheme       = "Bearer",
                BearerFormat = "JWT"
            });

            options.AddSecurityRequirement(
                new OpenApiSecurityRequirement()
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        },
                        Scheme = "oauth2",
                        Name   = "Bearer",
                        In     = ParameterLocation.Header,
                    },
                    new List <string>()
                }
            });
        }
        public static SwaggerGenOptions AddSwaggerOptions(SwaggerGenOptions options)
        {
            options.SwaggerDoc("v2", new OpenApiInfo {
                Title = "WebApiPushNotifications", Version = "v2"
            });

            options.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme, new OpenApiSecurityScheme
            {
                In          = ParameterLocation.Header,
                Description = "Insert the Bearer into Header",
                Name        = HeaderNames.Authorization,
                Type        = SecuritySchemeType.ApiKey
            });

            options.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = JwtBearerDefaults.AuthenticationScheme
                        }
                    },
                    Array.Empty <string>()
                }
            });

            return(options);
        }
        public static void AddIndentitySecurity(this SwaggerGenOptions options)
        {
            if (options is null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            options.AddSecurityDefinition(_SecurityDefinitionName, new OpenApiSecurityScheme
            {
                Type        = SecuritySchemeType.ApiKey,
                Name        = "Authorization",
                Description = "Identity authorization",
                In          = ParameterLocation.Header,
                Scheme      = _SecurityDefinitionName
            });

            options.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Name      = _SecurityDefinitionName,
                        In        = ParameterLocation.Header,
                        Reference = new OpenApiReference {
                            Type = ReferenceType.SecurityScheme, Id = _SecurityDefinitionName
                        }
                    },
                    Array.Empty <string>()
                }
            });
        }
        private static void AddJwtToSwagger(this SwaggerGenOptions swagger)
        {
            swagger.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Description  = $"Authorization header using the 'Bearer' scheme.\n\rEnter 'Bearer' [space] and then your token in the text input below.\r\nExample: 'Bearer eyJuYW1laWQi'",
                Name         = "Authorization",
                In           = ParameterLocation.Header,
                Type         = SecuritySchemeType.ApiKey,
                Scheme       = "bearer",
                BearerFormat = "Bearer"
            });

            swagger.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Id   = "Bearer",
                            Type = ReferenceType.SecurityScheme
                        },
                    },
                    new List <string>()
                }
            });
        }
Пример #23
0
        private static void AddJwtSecurityDefinition(this SwaggerGenOptions c)
        {
            // Configure swagger to accept JWT
            c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Name         = "Bearer",
                BearerFormat = "JWT",
                Scheme       = "bearer",
                Description  = "Specify the authorization token.",
                In           = ParameterLocation.Header,
                Type         = SecuritySchemeType.Http
            });

            c.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        }
                    },
                    new string[] {}
                }
            });
        }
Пример #24
0
        /// <summary>Adiciona autenticação no serviço</summary>
        /// <param name="options">Opção de configuração</param>
        private static void AddSecurity(SwaggerGenOptions options)
        {
            options.AddSecurityDefinition(
                "oauth2",
                new OpenApiSecurityScheme
            {
                Type  = SecuritySchemeType.OAuth2,
                Flows = new OpenApiOAuthFlows
                {
                    Implicit = new OpenApiOAuthFlow
                    {
                        AuthorizationUrl = new Uri("/auth-server/connect/authorize", UriKind.Relative),
                        Scopes           = new Dictionary <string, string>
                        {
                            { "readAccess", "Access read operations" },
                            { "writeAccess", "Access write operations" }
                        }
                    }
                }
            });

            options.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference {
                            Type = ReferenceType.SecurityScheme, Id = "oauth2"
                        }
                    },
                    new[] { "readAccess", "writeAccess" }
                }
            });
        }
Пример #25
0
        public static SwaggerGenOptions AddBearerAuthentication(this SwaggerGenOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                In          = ParameterLocation.Header,
                Name        = "Authorization",
                Description = "JWT Authorization header using the Bearer scheme. Example: \"Bearer {token}\""
            });

            options.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference {
                            Type = ReferenceType.SecurityScheme, Id = "Bearer"
                        }
                    },
                    new string[] { }
                }
            });

            return(options);
        }
Пример #26
0
        public static void UseOAuth2Scheme(this SwaggerGenOptions options, AuthenticationInfo authentication)
        {
            if (authentication?.Authority == null)
            {
                throw new ApiDocumentationException("Invalid or missing Authentication info: Authority");
            }

            var scheme = new OpenApiSecurityScheme()
            {
                Type  = SecuritySchemeType.OAuth2,
                Flows = new OpenApiOAuthFlows
                {
                    Implicit = new OpenApiOAuthFlow
                    {
                        AuthorizationUrl = new Uri($"{authentication.Authority}/oauth2/authorize"),
                        Scopes           = new Dictionary <string, string>(),
                    }
                },
                Description = authentication.Description
            };

            options.AddSecurityDefinition("oauth2", scheme);
            options.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference {
                            Type = ReferenceType.SecurityScheme, Id = "oauth2"
                        }
                    },
                    new string[] { }
                }
            });
        }
 public static void ApplyBearerAuthorication(this SwaggerGenOptions c)
 {
     c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
     {
         In          = ParameterLocation.Header,
         Description = "授权认证码",
         Name        = "Authorization",
         Type        = SecuritySchemeType.ApiKey,
         Scheme      = "Bearer"
     });
     c.AddSecurityRequirement(new OpenApiSecurityRequirement
     {
         [
             new OpenApiSecurityScheme
             {
                 Name = "Bearer",
                 Reference = new OpenApiReference
                 {
                     Type = ReferenceType.SecurityScheme,
                     Id = "Bearer",
                 },
                 Scheme = "oauth2",
                 In = ParameterLocation.Header,
             }
         ] = new List <string>()
     });
 }
Пример #28
0
        public static void UseApiKeyScheme(this SwaggerGenOptions options, AuthenticationInfo authentication)
        {
            var scheme = new OpenApiSecurityScheme()
            {
                Name         = "Authorization",
                Type         = SecuritySchemeType.ApiKey,
                Scheme       = "Bearer",
                BearerFormat = "JWT",
                In           = ParameterLocation.Header,
                Description  = authentication.Description
            };

            options.AddSecurityDefinition(ImpersonationBearerDefaults.AuthenticationScheme, scheme);
            options.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference {
                            Type = ReferenceType.SecurityScheme, Id = ImpersonationBearerDefaults.AuthenticationScheme
                        }
                    },
                    new string[] { }
                }
            });
        }
Пример #29
0
        private static void AddSwaggerAuthorization(SwaggerGenOptions x)
        {
            x.AddSecurityDefinition("Bearer",
                                    new OpenApiSecurityScheme
            {
                Description = @"JWT Authorization header using the Bearer scheme. \r\n\r\n 
                      Enter 'Bearer' [space] and then your token in the text input below.
                      \r\n\r\nExample: 'Bearer 12345abcdef'",
                Name        = "Authorization",
                In          = ParameterLocation.Header,
                Type        = SecuritySchemeType.ApiKey,
                Scheme      = "Bearer"
            });

            x.AddSecurityRequirement(new OpenApiSecurityRequirement()
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        },
                        Scheme = "oauth2",
                        Name   = "Bearer",
                        In     = ParameterLocation.Header,
                    },
                    new List <string>()
                }
            });
        }
Пример #30
0
        private void ConfigureSwaggerGen(SwaggerGenOptions obj)
        {
            obj.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Name         = "Bearer",
                BearerFormat = "JWT",
                Scheme       = "bearer",
                Description  = "Specify the authorization token.",
                In           = ParameterLocation.Header,
                Type         = SecuritySchemeType.Http,
            });

            obj.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        }
                    },
                    new string[] { }
                }
            });
        }