Skip to content

Commit

Permalink
Use List over IEnumerable to avoid allocations
Browse files Browse the repository at this point in the history
  • Loading branch information
iNinja committed Jun 20, 2024
1 parent adb8c39 commit da8b0b8
Showing 1 changed file with 7 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -188,17 +188,20 @@ private static bool AudienceIsValid(IEnumerable<string> audiences, TokenValidati

private static string? AudienceIsValidReturning(IEnumerable<string> audiences, TokenValidationParameters validationParameters)
{
if (audiences is not List<string> internalAudiences)
internalAudiences = audiences.ToList();

string? validAudience = null;
if (!string.IsNullOrWhiteSpace(validationParameters.ValidAudience))
validAudience = AudiencesMatchSingle(audiences, validationParameters.ValidAudience, validationParameters.IgnoreTrailingSlashWhenValidatingAudience);
validAudience = AudiencesMatchSingle(internalAudiences, validationParameters.ValidAudience, validationParameters.IgnoreTrailingSlashWhenValidatingAudience);

if (validAudience == null && validationParameters.ValidAudiences != null)
validAudience = AudiencesMatchList(audiences, validationParameters.ValidAudiences, validationParameters.IgnoreTrailingSlashWhenValidatingAudience);
validAudience = AudiencesMatchList(internalAudiences, validationParameters.ValidAudiences, validationParameters.IgnoreTrailingSlashWhenValidatingAudience);

return validAudience;
}

private static string? AudiencesMatchSingle(IEnumerable<string> audiences, string validAudience, bool ignoreTrailingSlashWhenValidatingAudience)
private static string? AudiencesMatchSingle(List<string> audiences, string validAudience, bool ignoreTrailingSlashWhenValidatingAudience)
{
foreach (string tokenAudience in audiences)
{
Expand All @@ -217,7 +220,7 @@ private static bool AudienceIsValid(IEnumerable<string> audiences, TokenValidati
return null;
}

private static string? AudiencesMatchList(IEnumerable<string> audiences, IEnumerable<string> validAudiences, bool ignoreTrailingSlashWhenValidatingAudience)
private static string? AudiencesMatchList(List<string> audiences, IEnumerable<string> validAudiences, bool ignoreTrailingSlashWhenValidatingAudience)
{
foreach (string tokenAudience in audiences)
{
Expand Down

0 comments on commit da8b0b8

Please sign in to comment.