c# - AuthorizationHeader 不再显示在招摇文档中?
问题描述
在我将所有 NuGet 包升级到最新版本后,swagger 授权标头不再显示在 swagger open api 文档中。
发生了什么?
ASP.NET 核心 3.1
我的代码......(这个可以工作,但不再工作)
startup.cs
......
services.ConfigureSwaggerGen(options =>
{
options.OperationFilter<AuthorizationHeaderParameterOperationFilter>();
options.DescribeAllEnumsAsStrings();
....
});
.
public class AuthorizationHeaderParameterOperationFilter : IOperationFilter
{
public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
var filterPipeline = context.ApiDescription.ActionDescriptor.FilterDescriptors;
var isAuthorized = filterPipeline.Select(filterInfo => filterInfo.Filter).Any(filter => filter is AuthorizeFilter);
var allowAnonymous = filterPipeline.Select(filterInfo => filterInfo.Filter).Any(filter => filter is IAllowAnonymousFilter);
if (isAuthorized && !allowAnonymous)
{
if (operation.Parameters == null)
operation.Parameters = new List<OpenApiParameter>();
operation.Parameters.Add(new OpenApiParameter
{
Name = "Authorization",
In = ParameterLocation.Header,
Description = "access token",
Required = true,
Schema = new OpenApiSchema
{
Type = "String",
Default = new OpenApiString("Bearer ")
}
});
}
if (allowAnonymous)
{
if (operation.Parameters == null)
operation.Parameters = new List<OpenApiParameter>();
operation.Parameters.Add(new OpenApiParameter
{
Name = "Authorization",
In = ParameterLocation.Header,
Description = "basic authentication",
Required = true,
Schema = new OpenApiSchema
{
Type = "String",
Default = new OpenApiString("Basic ")
}
});
}
}
}
解决方案
推荐阅读
- twitter-bootstrap - 如何划分页面以创建小部件?
- python - Selenium WebDriverException 与无头镀铬
- javascript - JavaScript/jQuery - 未捕获的 TypeError - 但变量已在脚本中启动
- r - 计算两列的百分比并将值添加到新数据框
- python - 从 WebDriver 元素中检索属性
- python - 迭代多处理列表的结果会消耗大量内存
- javascript - 验证
点击谷歌地图自动完成的结果后清除输入 - bamboo - Bamboo - 为运行时动态给出的分支构建
- javascript - 如何在下拉列表中显示值?
- r - 如何在没有完整样本数据的情况下进行配对 t 检验?