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);
useDefaultPolicy = false;
}
var rolesSplit = authorizeAttribute.Roles?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
var rolesSplit = authorizeAttribute.Roles?.Split(',');
if (rolesSplit != null && rolesSplit.Any())
{
for (int i = 0; i < rolesSplit.Length; ++i)
{
rolesSplit[i] = rolesSplit[i].Trim();
}
var trimmedRolesSplit = rolesSplit.Where(r => !string.IsNullOrWhiteSpace(r)).Select(r => r.Trim());
policyBuilder.RequireRole(rolesSplit.Where(r => !string.IsNullOrWhiteSpace(r)));
policyBuilder.RequireRole(trimmedRolesSplit);
useDefaultPolicy = false;
}
var authTypesSplit = authorizeAttribute.ActiveAuthenticationSchemes?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
var authTypesSplit = authorizeAttribute.ActiveAuthenticationSchemes?.Split(',');
if (authTypesSplit != null && authTypesSplit.Any())
{
foreach (var authType in authTypesSplit)
{
var trimmedAuthType = authType.Trim();
if(!string.IsNullOrWhiteSpace(trimmedAuthType))
if (!string.IsNullOrWhiteSpace(authType))
{
policyBuilder.AuthenticationSchemes.Add(trimmedAuthType);
policyBuilder.AuthenticationSchemes.Add(authType.Trim());
}
}
}