diff --git a/src/Ocelot/Authorization/ClaimsAuthorizer.cs b/src/Ocelot/Authorization/ClaimsAuthorizer.cs index 8806ac43e..db4e1b405 100644 --- a/src/Ocelot/Authorization/ClaimsAuthorizer.cs +++ b/src/Ocelot/Authorization/ClaimsAuthorizer.cs @@ -7,8 +7,9 @@ namespace Ocelot.Authorization; /// -/// Default authorizer by claims. +/// Default authorizer by claims which is implemented using Claims-based authorization. /// +/// Microsoft Learn: Claims-based authorization in ASP.NET Core. public partial class ClaimsAuthorizer : IClaimsAuthorizer { private readonly IClaimsParser _claimsParser; @@ -29,8 +30,12 @@ List urlPathPlaceholderNameAndValues { foreach (var required in routeClaimsRequirement) { - var values = _claimsParser.GetValuesByClaimType(claimsPrincipal.Claims, required.Key); + if (string.IsNullOrEmpty(required.Value) || string.IsNullOrWhiteSpace(required.Value)) + { + continue; // if required value is not specified + } + var values = _claimsParser.GetValuesByClaimType(claimsPrincipal.Claims, required.Key); if (values.IsError) { return new ErrorResponse(values.Errors);