diff options
author | David Fowler <davidfowl@gmail.com> | 2022-01-31 19:24:22 +0300 |
---|---|---|
committer | David Fowler <davidfowl@gmail.com> | 2022-01-31 19:24:22 +0300 |
commit | 045f9f8b409c67b85f4e2bddfd7d6f665fb85e9a (patch) | |
tree | 9a385bcf3af7ff0cc58743285c6b076a8b1cc0ef | |
parent | cf929b646c44366bf5e149325d56f25caecdc83c (diff) |
3 files changed, 21 insertions, 6 deletions
diff --git a/src/Security/Authorization/Core/src/AuthorizationPolicy.cs b/src/Security/Authorization/Core/src/AuthorizationPolicy.cs index 294a0ba2a3..1942f7fca2 100644 --- a/src/Security/Authorization/Core/src/AuthorizationPolicy.cs +++ b/src/Security/Authorization/Core/src/AuthorizationPolicy.cs @@ -104,6 +104,21 @@ public class AuthorizationPolicy /// </summary> /// <param name="policyProvider">A <see cref="IAuthorizationPolicyProvider"/> which provides the policies to combine.</param> /// <param name="authorizeData">A collection of authorization data used to apply authorization to a resource.</param> + /// <returns> + /// A new <see cref="AuthorizationPolicy"/> which represents the combination of the + /// authorization policies provided by the specified <paramref name="policyProvider"/>. + /// </returns> + public static Task<AuthorizationPolicy?> CombineAsync(IAuthorizationPolicyProvider policyProvider, + IEnumerable<IAuthorizeData> authorizeData) => CombineAsync(policyProvider, authorizeData, + Enumerable.Empty<AuthorizationPolicy>(), + Enumerable.Empty<IAuthorizationRequirement>()); + + /// <summary> + /// Combines the <see cref="AuthorizationPolicy"/> provided by the specified + /// <paramref name="policyProvider"/>. + /// </summary> + /// <param name="policyProvider">A <see cref="IAuthorizationPolicyProvider"/> which provides the policies to combine.</param> + /// <param name="authorizeData">A collection of authorization data used to apply authorization to a resource.</param> /// <param name="policies">A collection of <see cref="AuthorizationPolicy"/> policies to combine.</param> /// <param name="requirements">A collection of <see cref="IAuthorizationRequirement"/>s to add to the auth policy.</param> /// <returns> @@ -112,8 +127,8 @@ public class AuthorizationPolicy /// </returns> public static async Task<AuthorizationPolicy?> CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable<IAuthorizeData> authorizeData, - IEnumerable<AuthorizationPolicy>? policies = null, - IEnumerable<IAuthorizationRequirement>? requirements = null) + IEnumerable<AuthorizationPolicy> policies, + IEnumerable<IAuthorizationRequirement> requirements) { if (policyProvider == null) { @@ -125,8 +140,8 @@ public class AuthorizationPolicy throw new ArgumentNullException(nameof(authorizeData)); } - var anyPolicies = policies is not null && policies.Any(); - var anyRequirements = requirements is not null && requirements.Any(); + var anyPolicies = policies.Any(); + var anyRequirements = requirements.Any(); // Avoid allocating enumerator if the data is known to be empty var skipEnumeratingData = false; diff --git a/src/Security/Authorization/Core/src/PublicAPI.Unshipped.txt b/src/Security/Authorization/Core/src/PublicAPI.Unshipped.txt index c73b2f6624..6fe5d6ca17 100644 --- a/src/Security/Authorization/Core/src/PublicAPI.Unshipped.txt +++ b/src/Security/Authorization/Core/src/PublicAPI.Unshipped.txt @@ -1,2 +1,2 @@ #nullable enable -static Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider! policyProvider, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Authorization.IAuthorizeData!>! authorizeData, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Authorization.AuthorizationPolicy!>? policies = null, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Authorization.IAuthorizationRequirement!>? requirements = null) -> System.Threading.Tasks.Task<Microsoft.AspNetCore.Authorization.AuthorizationPolicy?>! +static Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider! policyProvider, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Authorization.IAuthorizeData!>! authorizeData, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Authorization.AuthorizationPolicy!>! policies, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Authorization.IAuthorizationRequirement!>! requirements) -> System.Threading.Tasks.Task<Microsoft.AspNetCore.Authorization.AuthorizationPolicy?>! diff --git a/src/Security/Authorization/test/AuthorizationPolicyFacts.cs b/src/Security/Authorization/test/AuthorizationPolicyFacts.cs index 9a3a4d78a8..3fb54f893f 100644 --- a/src/Security/Authorization/test/AuthorizationPolicyFacts.cs +++ b/src/Security/Authorization/test/AuthorizationPolicyFacts.cs @@ -59,7 +59,7 @@ public class AuthorizationPolicyFacts var provider = new DefaultAuthorizationPolicyProvider(Options.Create(options)); // Act - var combined = await AuthorizationPolicy.CombineAsync(provider, attributes, policies); + var combined = await AuthorizationPolicy.CombineAsync(provider, attributes, policies, Enumerable.Empty<IAuthorizationRequirement>()); // Assert Assert.Equal(1, combined.Requirements.Count); |