Correctly set scopes for AuthorizeCheckOperationFilter

This commit is contained in:
Reuben Bond 2023-05-08 11:23:08 -07:00
parent 3858d7ccf7
commit 9c2b972cc9

View File

@ -6,9 +6,11 @@ using Swashbuckle.AspNetCore.SwaggerGen;
namespace Services.Common; namespace Services.Common;
internal class AuthorizeCheckOperationFilter : IOperationFilter internal class AuthorizeCheckOperationFilter : IOperationFilter
{ {
private readonly IConfiguration _configuration;
public AuthorizeCheckOperationFilter(IConfiguration configuration) public AuthorizeCheckOperationFilter(IConfiguration configuration)
{ {
_configuration = configuration;
} }
public void Apply(OpenApiOperation operation, OperationFilterContext context) public void Apply(OpenApiOperation operation, OperationFilterContext context)
@ -27,11 +29,14 @@ internal class AuthorizeCheckOperationFilter : IOperationFilter
Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" }
}; };
var identitySection = _configuration.GetSection("Identity");
var scopes = identitySection.GetRequiredSection("Scopes").GetChildren().Select(r => r.Key).ToArray();
operation.Security = new List<OpenApiSecurityRequirement> operation.Security = new List<OpenApiSecurityRequirement>
{ {
new() new()
{ {
[ oAuthScheme ] = new [] { "basketapi" } [ oAuthScheme ] = scopes
} }
}; };
} }