in src/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core/DocumentHelper.cs [46:79]
public List<OpenApiSecurityRequirement> GetOpenApiSecurityRequirement(MethodInfo element, NamingStrategy namingStrategy = null)
{
var attributes = element.GetCustomAttributes<OpenApiSecurityAttribute>(inherit: false);
if (!attributes.Any())
{
return new List<OpenApiSecurityRequirement>();
}
var requirements = new List<OpenApiSecurityRequirement>();
foreach (var attr in attributes)
{
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),
};
var value = GetSecurityOAuthScopes(attr, scheme.Flows);
var requirement = new OpenApiSecurityRequirement();
requirement.Add(scheme, value);
requirements.Add(requirement);
}
return requirements;
}