in src/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core/DocumentHelper.cs [200:236]
public Dictionary<string, OpenApiSecurityScheme> GetOpenApiSecuritySchemes(List<MethodInfo> elements, NamingStrategy namingStrategy = null)
{
var schemes = new Dictionary<string, OpenApiSecurityScheme>();
foreach (var element in elements)
{
var attributes = element.GetCustomAttributes<OpenApiSecurityAttribute>(inherit: false);
if (!attributes.Any())
{
continue;
}
foreach (var attr in attributes)
{
if (schemes.ContainsKey(attr.SchemeName))
{
continue;
}
var scheme = new OpenApiSecurityScheme()
{
Type = attr.SchemeType,
Description = attr.Description,
Name = GetSecuritySchemeName(attr),
In = GetSecuritySchemeLocation(attr),
Scheme = GetSecuritySchemeScheme(attr, namingStrategy),
BearerFormat = GetSecurityBearerFormat(attr),
Flows = GetSecurityOAuthFlows(attr),
OpenIdConnectUrl = GetSecurityOpenIdConnectUrl(attr),
Reference = GetSecurityReference(attr),
};
schemes.Add(attr.SchemeName, scheme);
}
}
return schemes;
}