Skip to content

Commit 99f5a08

Browse files
authored
Fix on NRE at OpenApiSecurityAttribute (#32)
1 parent b5b88a3 commit 99f5a08

File tree

5 files changed

+10
-9
lines changed

5 files changed

+10
-9
lines changed

.github/workflows/build.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
- main
77
- dev
88
- feature/*
9+
- hotfix/*
910

1011
jobs:
1112
build_and_test:

docs/enable-open-api-endpoints.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ namespace MyOpenApiFunctionApp
111111
// Add these three attribute classes below
112112
[OpenApiOperation(operationId: "getName", tags: new[] { "name" }, Summary = "Gets the name", Description = "This gets the name.", Visibility = OpenApiVisibilityType.Important)]
113113
[OpenApiParameter(name: "name", In = ParameterLocation.Query, Required = true, Type = typeof(string), Summary = "The name", Description = "The name", Visibility = OpenApiVisibilityType.Important)]
114-
[OpenApiSecurity("function_key", SecuritySchemeType.ApiKey, Name = "x-functions-key", In = OpenApiSecurityLocationType.Header)]
114+
[OpenApiSecurity("function_key", SecuritySchemeType.ApiKey, Name = "code", In = OpenApiSecurityLocationType.Query)]
115115
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "text/plain", bodyType: typeof(string), Summary = "The response", Description = "This returns the response")]
116116
// Add these three attribute classes above
117117

samples/Microsoft.Azure.WebJobs.Extensions.OpenApi.FunctionApp.V3Static/DummyHttpTrigger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public static async Task<IActionResult> AddDummy(
5555

5656
[FunctionName(nameof(DummyHttpTrigger.UpdateDummies))]
5757
[OpenApiOperation(operationId: "updateDummies", tags: new[] { "dummy" }, Summary = "Updates a list of dummies", Description = "This updates a list of dummies.", Visibility = OpenApiVisibilityType.Advanced)]
58-
[OpenApiSecurity("function_key", SecuritySchemeType.ApiKey, Name = "x-functions-key", In = OpenApiSecurityLocationType.Header)]
58+
[OpenApiSecurity("function_key", SecuritySchemeType.ApiKey, Name = "code", In = OpenApiSecurityLocationType.Query)]
5959
[OpenApiRequestBody(contentType: "application/json", bodyType: typeof(DummyListModel), Required = true, Description = "Dummy list model")]
6060
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "application/json", bodyType: typeof(List<DummyStringModel>), Summary = "Dummy response", Description = "This returns the dummy response")]
6161
public static async Task<IActionResult> UpdateDummies(

src/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core/Document.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,12 @@ public IDocument Build(Assembly assembly)
146146
this.OpenApiDocument.Paths = paths;
147147
this.OpenApiDocument.Components.Schemas = this._helper.GetOpenApiSchemas(methods, this._strategy, this._collection);
148148
this.OpenApiDocument.Components.SecuritySchemes = this._helper.GetOpenApiSecuritySchemes(methods, this._strategy);
149-
this.OpenApiDocument.SecurityRequirements = this.OpenApiDocument
150-
.Paths
151-
.SelectMany(p => p.Value.Operations.SelectMany(q => q.Value.Security))
152-
.Where(p => !p.IsNullOrDefault())
153-
.Distinct(new OpenApiSecurityRequirementComparer())
154-
.ToList();
149+
// this.OpenApiDocument.SecurityRequirements = this.OpenApiDocument
150+
// .Paths
151+
// .SelectMany(p => p.Value.Operations.SelectMany(q => q.Value.Security))
152+
// .Where(p => !p.IsNullOrDefault())
153+
// .Distinct(new OpenApiSecurityRequirementComparer())
154+
// .ToList();
155155

156156
return this;
157157
}

src/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core/DocumentHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public List<OpenApiSecurityRequirement> GetOpenApiSecurityRequirement(MethodInfo
128128
var attributes = element.GetCustomAttributes<OpenApiSecurityAttribute>(inherit: false);
129129
if (!attributes.Any())
130130
{
131-
return null;
131+
return new List<OpenApiSecurityRequirement>();
132132
}
133133

134134
var requirements = new List<OpenApiSecurityRequirement>();

0 commit comments

Comments
 (0)