Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/feature/idp-1027_support_policy_…
Browse files Browse the repository at this point in the history
…with_custom_permissions' into feature/idp-1027_support_policy_with_custom_permissions

# Conflicts:
#	src/Workleap.AspNetCore.Authentication.ClientCredentialsGrant/RequireClientCredentialsRequirementHandler.cs
  • Loading branch information
Mathieu Gamache committed Jun 20, 2024
2 parents ea422d9 + 9dd8831 commit fc10110
Showing 1 changed file with 4 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ protected override Task HandleRequirementAsync(AuthorizationHandlerContext conte
return Task.CompletedTask;
}

private bool TryGetRequiredScopes(AuthorizationHandlerContext context, [NotNullWhen(true)] out string[]? requiredScopes)
private bool TryGetRequiredScopes(AuthorizationHandlerContext context, [NotNullWhen(true)] out HashSet<string>? requiredScopes)
{
requiredScopes = null;

Expand All @@ -65,7 +65,7 @@ private bool TryGetRequiredScopes(AuthorizationHandlerContext context, [NotNullW
return false;
}

requiredScopes = requiredPermissions.SelectMany(this.FormatScopes).ToArray();
requiredScopes = requiredPermissions.SelectMany(this.FormatScopes).ToHashSet(StringComparer.Ordinal);
return true;
}

Expand All @@ -74,10 +74,10 @@ private string[] FormatScopes(string requiredPermission)
return [requiredPermission, $"{this._jwtOptions.Audience}:{requiredPermission}"];
}

private static bool HasOneOfScope(ClaimsPrincipal claimsPrincipal, string[] requiredScopes)
private static bool HasOneOfScope(ClaimsPrincipal claimsPrincipal, HashSet<string> requiredScopes)
{
return claimsPrincipal.Claims
.Where(claim => ScopeClaimTypes.Contains(claim.Type))
.Any(claim => requiredScopes.Contains(claim.Value, StringComparer.Ordinal));
.Any(claim => requiredScopes.Contains(claim.Value));
}
}

0 comments on commit fc10110

Please sign in to comment.