public void Apply(Microsoft.OpenApi.Models.OpenApiOperation operation, Swashbuckle.AspNetCore.SwaggerGen.OperationFilterContext context) { var isAuthorized = (context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType <Microsoft.AspNetCore.Authorization.AuthorizeAttribute>().Any() || context.MethodInfo.GetCustomAttributes(true).OfType <Microsoft.AspNetCore.Authorization.AuthorizeAttribute>().Any()) && !context.MethodInfo.GetCustomAttributes(true).OfType <Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute>().Any(); // this excludes methods with AllowAnonymous attribute if (!isAuthorized) { return; } operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); var jwtbearerScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "bearer" } }; operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { [jwtbearerScheme] = new string [] {} } }; }
public void Apply(Microsoft.OpenApi.Models.OpenApiOperation operation, OperationFilterContext context) { var filters = context.ApiDescription.ActionDescriptor.FilterDescriptors.Select(filterInfo => filterInfo.Filter).ToList(); var isAuthorized = filters.Any(filter => filter is Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter); var allowAnonymous = filters.Any(filter => filter is Microsoft.AspNetCore.Mvc.Authorization.IAllowAnonymousFilter); if (!isAuthorized || allowAnonymous) { return; } if (operation.Parameters == null) { operation.Parameters = new List <Microsoft.OpenApi.Models.OpenApiParameter>(); } operation.Parameters.Add(new OpenApiParameter { Name = "Authorization", In = Microsoft.OpenApi.Models.ParameterLocation.Header, Description = "Access token", Required = true, }); }
public void Apply(Microsoft.OpenApi.Models.OpenApiOperation operation, OperationFilterContext context) { if (operation.OperationId == "Post") { // operation. // operation.Parameters = new List<OpenApiParameter> // { // new OpenApiParameter // { // Name = "myFile", // Required = true, // Schema = new OpenApiSchema // { // Type = "file" // } , // In = ParameterLocation.Path, // } // }; } }
/// <summary> /// Add one operation into this path item. /// </summary> /// <param name="operationType">The operation type kind.</param> /// <param name="operation">The operation item.</param> public void AddOperation(OperationType operationType, OpenApiOperation operation) { Operations[operationType] = operation; }
public static bool IsOperationIdPluralized(this OpenApiOperation openApiOperation, OperationType operationType) { return(IsOperationNamePluralized(openApiOperation, operationType)); }