diff --git a/modules/openapi-generator/src/main/resources/aspnetcore/3.0/Authentication/ApiAuthentication.mustache b/modules/openapi-generator/src/main/resources/aspnetcore/3.0/Authentication/ApiAuthentication.mustache index c1bb8368d533..59a69054f181 100644 --- a/modules/openapi-generator/src/main/resources/aspnetcore/3.0/Authentication/ApiAuthentication.mustache +++ b/modules/openapi-generator/src/main/resources/aspnetcore/3.0/Authentication/ApiAuthentication.mustache @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace {{packageName}}.Authentication @@ -48,24 +49,29 @@ namespace {{packageName}}.Authentication private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { -{{#authMethods}}{{#isApiKey}} - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) - { +{{#authMethods}} +{{#isApiKey}} + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; + + if (httpContext == null) + return; + {{#isKeyInHeader}} - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["{{keyParamName}}"].FirstOrDefault(); + var apiKey = httpContext.Request.Headers["{{keyParamName}}"].FirstOrDefault(); {{/isKeyInHeader}} {{#isKeyInQuery}} - var apiKey = authorizationFilterContext.HttpContext.Request.Query["{{keyParamName}}"].FirstOrDefault(); + var apiKey = httpContext.Request.Query["{{keyParamName}}"].FirstOrDefault(); {{/isKeyInQuery}} {{#isKeyInCookie}} - var apiKey = authorizationFilterContext.HttpContext.Request.Cookies["{{keyParamName}}"] ?? null; + var apiKey = httpContext.Request.Cookies["{{keyParamName}}"] ?? null; {{/isKeyInCookie}} - if (requirement.PolicyName == "{{name}}" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + if (requirement.PolicyName == "{{name}}" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) + { + context.Succeed(requirement); } -{{/isApiKey}}{{/authMethods}} +{{/isApiKey}} +{{/authMethods}} } } } diff --git a/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-8.0-NewtonsoftFalse/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-8.0-NewtonsoftFalse/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-8.0-NewtonsoftFalse/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-8.0-NewtonsoftFalse/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-8.0-nullableReferenceTypes/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-8.0-nullableReferenceTypes/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-8.0-nullableReferenceTypes/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-8.0-nullableReferenceTypes/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-8.0-pocoModels/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-8.0-pocoModels/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-8.0-pocoModels/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-8.0-pocoModels/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-8.0-project4Models/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-8.0-project4Models/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-8.0-project4Models/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-8.0-project4Models/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-8.0-use-centralized-package-version-management/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-8.0-use-centralized-package-version-management/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-8.0-use-centralized-package-version-management/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-8.0-use-centralized-package-version-management/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-8.0-useSwashBuckle/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-8.0-useSwashBuckle/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-8.0-useSwashBuckle/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-8.0-useSwashBuckle/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } } diff --git a/samples/server/petstore/aspnetcore-8.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs b/samples/server/petstore/aspnetcore-8.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs index bfbe6290f235..a8a2da26ea0b 100644 --- a/samples/server/petstore/aspnetcore-8.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +++ b/samples/server/petstore/aspnetcore-8.0/src/Org.OpenAPITools/Authentication/ApiAuthentication.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; namespace Org.OpenAPITools.Authentication @@ -57,16 +58,17 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte private void SucceedRequirementIfApiKeyPresentAndValid(AuthorizationHandlerContext context, ApiKeyRequirement requirement) { + var httpContext = (context.Resource as AuthorizationFilterContext)?.HttpContext + ?? context.Resource as HttpContext; - if (context.Resource is AuthorizationFilterContext authorizationFilterContext) + if (httpContext == null) + return; + + var apiKey = httpContext.Request.Headers["api_key"].FirstOrDefault(); + if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) { - var apiKey = authorizationFilterContext.HttpContext.Request.Headers["api_key"].FirstOrDefault(); - if (requirement.PolicyName == "api_key" && apiKey != null && requirement.ApiKeys.Any(requiredApiKey => apiKey == requiredApiKey)) - { - context.Succeed(requirement); - } + context.Succeed(requirement); } - } } }