Rework the empty or space only filtering in Roles and Schemes

This commit is contained in:
Vincent Lainé 2015-12-30 12:04:00 +01:00
parent 9a5da5861b
commit 9bf861307c
1 changed files with 6 additions and 10 deletions

View File

@ -85,26 +85,22 @@ namespace Microsoft.AspNet.Authorization
policyBuilder.Combine(policy); policyBuilder.Combine(policy);
useDefaultPolicy = false; useDefaultPolicy = false;
} }
var rolesSplit = authorizeAttribute.Roles?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); var rolesSplit = authorizeAttribute.Roles?.Split(',');
if (rolesSplit != null && rolesSplit.Any()) if (rolesSplit != null && rolesSplit.Any())
{ {
for (int i = 0; i < rolesSplit.Length; ++i) var trimmedRolesSplit = rolesSplit.Where(r => !string.IsNullOrWhiteSpace(r)).Select(r => r.Trim());
{
rolesSplit[i] = rolesSplit[i].Trim();
}
policyBuilder.RequireRole(rolesSplit.Where(r => !string.IsNullOrWhiteSpace(r))); policyBuilder.RequireRole(trimmedRolesSplit);
useDefaultPolicy = false; useDefaultPolicy = false;
} }
var authTypesSplit = authorizeAttribute.ActiveAuthenticationSchemes?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); var authTypesSplit = authorizeAttribute.ActiveAuthenticationSchemes?.Split(',');
if (authTypesSplit != null && authTypesSplit.Any()) if (authTypesSplit != null && authTypesSplit.Any())
{ {
foreach (var authType in authTypesSplit) foreach (var authType in authTypesSplit)
{ {
var trimmedAuthType = authType.Trim(); if (!string.IsNullOrWhiteSpace(authType))
if(!string.IsNullOrWhiteSpace(trimmedAuthType))
{ {
policyBuilder.AuthenticationSchemes.Add(trimmedAuthType); policyBuilder.AuthenticationSchemes.Add(authType.Trim());
} }
} }
} }