From 7669cf0d036cc0cb3b481aba49253cd35d85c633 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Fri, 19 Apr 2019 13:24:36 +1200 Subject: [PATCH] Move Microsoft.AspNetCore.Authorization.Policy types (#9492) --- .../MvcCoreMvcCoreBuilderExtensions.cs | 1 - .../test/Authorization/AuthorizeFilterTest.cs | 1 - .../Microsoft.AspNetCore.Authorization.csproj | 2 + ....AspNetCore.Authorization.netcoreapp3.0.cs | 44 +++++++ .../src/AuthorizationMarkerService.cs} | 2 +- ...uthorizationServiceCollectionExtensions.cs | 6 + .../Microsoft.AspNetCore.Authorization.csproj | 8 +- .../AuthorizationAppBuilderExtensions.cs | 4 +- ...tionEndpointConventionBuilderExtensions.cs | 0 .../src/Policy}/AuthorizationMiddleware.cs | 0 .../src/Policy}/IPolicyEvaluator.cs | 0 .../src/Policy}/PolicyAuthorizationResult.cs | 0 .../src/Policy}/PolicyEvaluator.cs | 0 .../Core/src/Properties/AssemblyInfo.cs | 1 + .../Core/src/Properties/Resources.Designer.cs | 14 ++ .../Authorization/Core/src/Resources.resx | 3 + ...oft.AspNetCore.Authorization.Policy.csproj | 3 - ...Core.Authorization.Policy.netcoreapp3.0.cs | 48 +------ ...oft.AspNetCore.Authorization.Policy.csproj | 9 +- .../src/PolicyServiceCollectionExtensions.cs | 3 +- .../Policy/src/Properties/AssemblyInfo.cs | 11 ++ .../src/Properties/Resources.Designer.cs | 44 ------- .../Authorization/Policy/src/Resources.resx | 123 ------------------ .../AuthorizationAppBuilderExtensionsTests.cs | 4 +- .../test/AuthorizationMiddlewareTests.cs | 3 +- .../test/PolicyEvaluatorTests.cs | 3 +- .../clients/ts/FunctionalTests/Startup.cs | 2 - ...onnectionsDependencyInjectionExtensions.cs | 2 +- .../test/HttpConnectionDispatcherTests.cs | 6 - src/SignalR/server/SignalR/test/Startup.cs | 2 +- 30 files changed, 101 insertions(+), 248 deletions(-) rename src/Security/Authorization/{Policy/src/AuthorizationPolicyMarkerService.cs => Core/src/AuthorizationMarkerService.cs} (81%) rename src/Security/Authorization/{Policy/src => Core/src/Policy}/AuthorizationAppBuilderExtensions.cs (93%) rename src/Security/Authorization/{Policy/src => Core/src/Policy}/AuthorizationEndpointConventionBuilderExtensions.cs (100%) rename src/Security/Authorization/{Policy/src => Core/src/Policy}/AuthorizationMiddleware.cs (100%) rename src/Security/Authorization/{Policy/src => Core/src/Policy}/IPolicyEvaluator.cs (100%) rename src/Security/Authorization/{Policy/src => Core/src/Policy}/PolicyAuthorizationResult.cs (100%) rename src/Security/Authorization/{Policy/src => Core/src/Policy}/PolicyEvaluator.cs (100%) create mode 100644 src/Security/Authorization/Policy/src/Properties/AssemblyInfo.cs delete mode 100644 src/Security/Authorization/Policy/src/Properties/Resources.Designer.cs delete mode 100644 src/Security/Authorization/Policy/src/Resources.resx diff --git a/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreMvcCoreBuilderExtensions.cs b/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreMvcCoreBuilderExtensions.cs index c87870a6e3..7dd460b8c4 100644 --- a/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreMvcCoreBuilderExtensions.cs +++ b/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreMvcCoreBuilderExtensions.cs @@ -117,7 +117,6 @@ namespace Microsoft.Extensions.DependencyInjection { services.AddAuthenticationCore(); services.AddAuthorization(); - services.AddAuthorizationPolicyEvaluator(); services.TryAddEnumerable( ServiceDescriptor.Transient()); diff --git a/src/Mvc/Mvc.Core/test/Authorization/AuthorizeFilterTest.cs b/src/Mvc/Mvc.Core/test/Authorization/AuthorizeFilterTest.cs index 5ec73c90d6..645f784bf1 100644 --- a/src/Mvc/Mvc.Core/test/Authorization/AuthorizeFilterTest.cs +++ b/src/Mvc/Mvc.Core/test/Authorization/AuthorizeFilterTest.cs @@ -629,7 +629,6 @@ namespace Microsoft.AspNetCore.Mvc.Authorization serviceCollection.AddLogging(); serviceCollection.AddSingleton(auth.Object); serviceCollection.AddAuthorization(); - serviceCollection.AddAuthorizationPolicyEvaluator(); registerServices?.Invoke(serviceCollection); var serviceProvider = serviceCollection.BuildServiceProvider(); diff --git a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj index a7b1b7a143..edcb7281ec 100644 --- a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj +++ b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj @@ -5,7 +5,9 @@ + + diff --git a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.netcoreapp3.0.cs b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.netcoreapp3.0.cs index 22934317c2..c80ea08c14 100644 --- a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.netcoreapp3.0.cs +++ b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.netcoreapp3.0.cs @@ -42,6 +42,11 @@ namespace Microsoft.AspNetCore.Authorization public virtual System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) { throw null; } protected abstract System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, TRequirement requirement, TResource resource); } + public partial class AuthorizationMiddleware + { + public AuthorizationMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider) { } + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) { throw null; } + } public partial class AuthorizationOptions { public AuthorizationOptions() { } @@ -211,6 +216,45 @@ namespace Microsoft.AspNetCore.Authorization.Infrastructure protected override System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, Microsoft.AspNetCore.Authorization.Infrastructure.RolesAuthorizationRequirement requirement) { throw null; } } } +namespace Microsoft.AspNetCore.Authorization.Policy +{ + public partial interface IPolicyEvaluator + { + System.Threading.Tasks.Task AuthenticateAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Http.HttpContext context); + System.Threading.Tasks.Task AuthorizeAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Authentication.AuthenticateResult authenticationResult, Microsoft.AspNetCore.Http.HttpContext context, object resource); + } + public partial class PolicyAuthorizationResult + { + internal PolicyAuthorizationResult() { } + public bool Challenged { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } + public bool Forbidden { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } + public bool Succeeded { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } + public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Challenge() { throw null; } + public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Forbid() { throw null; } + public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Success() { throw null; } + } + public partial class PolicyEvaluator : Microsoft.AspNetCore.Authorization.Policy.IPolicyEvaluator + { + public PolicyEvaluator(Microsoft.AspNetCore.Authorization.IAuthorizationService authorization) { } + [System.Diagnostics.DebuggerStepThroughAttribute] + public virtual System.Threading.Tasks.Task AuthenticateAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Http.HttpContext context) { throw null; } + [System.Diagnostics.DebuggerStepThroughAttribute] + public virtual System.Threading.Tasks.Task AuthorizeAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Authentication.AuthenticateResult authenticationResult, Microsoft.AspNetCore.Http.HttpContext context, object resource) { throw null; } + } +} +namespace Microsoft.AspNetCore.Builder +{ + public static partial class AuthorizationAppBuilderExtensions + { + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseAuthorization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) { throw null; } + } + public static partial class AuthorizationEndpointConventionBuilderExtensions + { + public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder RequireAuthorization(this Microsoft.AspNetCore.Builder.IEndpointConventionBuilder builder) { throw null; } + public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder RequireAuthorization(this Microsoft.AspNetCore.Builder.IEndpointConventionBuilder builder, params Microsoft.AspNetCore.Authorization.IAuthorizeData[] authorizeData) { throw null; } + public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder RequireAuthorization(this Microsoft.AspNetCore.Builder.IEndpointConventionBuilder builder, params string[] policyNames) { throw null; } + } +} namespace Microsoft.Extensions.DependencyInjection { public static partial class AuthorizationServiceCollectionExtensions diff --git a/src/Security/Authorization/Policy/src/AuthorizationPolicyMarkerService.cs b/src/Security/Authorization/Core/src/AuthorizationMarkerService.cs similarity index 81% rename from src/Security/Authorization/Policy/src/AuthorizationPolicyMarkerService.cs rename to src/Security/Authorization/Core/src/AuthorizationMarkerService.cs index 9061891e43..122d237e8c 100644 --- a/src/Security/Authorization/Policy/src/AuthorizationPolicyMarkerService.cs +++ b/src/Security/Authorization/Core/src/AuthorizationMarkerService.cs @@ -3,7 +3,7 @@ namespace Microsoft.AspNetCore.Authorization.Policy { - internal class AuthorizationPolicyMarkerService + internal class AuthorizationMarkerService { } } diff --git a/src/Security/Authorization/Core/src/AuthorizationServiceCollectionExtensions.cs b/src/Security/Authorization/Core/src/AuthorizationServiceCollectionExtensions.cs index c089fba285..c3b0dc580b 100644 --- a/src/Security/Authorization/Core/src/AuthorizationServiceCollectionExtensions.cs +++ b/src/Security/Authorization/Core/src/AuthorizationServiceCollectionExtensions.cs @@ -4,6 +4,7 @@ using System; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization.Infrastructure; +using Microsoft.AspNetCore.Authorization.Policy; using Microsoft.Extensions.DependencyInjection.Extensions; namespace Microsoft.Extensions.DependencyInjection @@ -31,6 +32,11 @@ namespace Microsoft.Extensions.DependencyInjection services.TryAdd(ServiceDescriptor.Transient()); services.TryAdd(ServiceDescriptor.Transient()); services.TryAddEnumerable(ServiceDescriptor.Transient()); + services.TryAddSingleton(); + + // Policy + services.TryAdd(ServiceDescriptor.Transient()); + return services; } diff --git a/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj b/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj index 0fb3159d24..68a958a1a0 100644 --- a/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj +++ b/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj @@ -1,4 +1,4 @@ - + ASP.NET Core authorization classes. @@ -14,7 +14,13 @@ Microsoft.AspNetCore.Authorization.AuthorizeAttribute + + + + + + diff --git a/src/Security/Authorization/Policy/src/AuthorizationAppBuilderExtensions.cs b/src/Security/Authorization/Core/src/Policy/AuthorizationAppBuilderExtensions.cs similarity index 93% rename from src/Security/Authorization/Policy/src/AuthorizationAppBuilderExtensions.cs rename to src/Security/Authorization/Core/src/Policy/AuthorizationAppBuilderExtensions.cs index 08c4538f5a..a34551243b 100644 --- a/src/Security/Authorization/Policy/src/AuthorizationAppBuilderExtensions.cs +++ b/src/Security/Authorization/Core/src/Policy/AuthorizationAppBuilderExtensions.cs @@ -34,11 +34,11 @@ namespace Microsoft.AspNetCore.Builder { // Verify that AddAuthorizationPolicy was called before calling UseAuthorization // We use the AuthorizationPolicyMarkerService to ensure all the services were added. - if (app.ApplicationServices.GetService(typeof(AuthorizationPolicyMarkerService)) == null) + if (app.ApplicationServices.GetService(typeof(AuthorizationMarkerService)) == null) { throw new InvalidOperationException(Resources.FormatException_UnableToFindServices( nameof(IServiceCollection), - nameof(PolicyServiceCollectionExtensions.AddAuthorizationPolicyEvaluator), + nameof(AuthorizationServiceCollectionExtensions.AddAuthorization), "ConfigureServices(...)")); } } diff --git a/src/Security/Authorization/Policy/src/AuthorizationEndpointConventionBuilderExtensions.cs b/src/Security/Authorization/Core/src/Policy/AuthorizationEndpointConventionBuilderExtensions.cs similarity index 100% rename from src/Security/Authorization/Policy/src/AuthorizationEndpointConventionBuilderExtensions.cs rename to src/Security/Authorization/Core/src/Policy/AuthorizationEndpointConventionBuilderExtensions.cs diff --git a/src/Security/Authorization/Policy/src/AuthorizationMiddleware.cs b/src/Security/Authorization/Core/src/Policy/AuthorizationMiddleware.cs similarity index 100% rename from src/Security/Authorization/Policy/src/AuthorizationMiddleware.cs rename to src/Security/Authorization/Core/src/Policy/AuthorizationMiddleware.cs diff --git a/src/Security/Authorization/Policy/src/IPolicyEvaluator.cs b/src/Security/Authorization/Core/src/Policy/IPolicyEvaluator.cs similarity index 100% rename from src/Security/Authorization/Policy/src/IPolicyEvaluator.cs rename to src/Security/Authorization/Core/src/Policy/IPolicyEvaluator.cs diff --git a/src/Security/Authorization/Policy/src/PolicyAuthorizationResult.cs b/src/Security/Authorization/Core/src/Policy/PolicyAuthorizationResult.cs similarity index 100% rename from src/Security/Authorization/Policy/src/PolicyAuthorizationResult.cs rename to src/Security/Authorization/Core/src/Policy/PolicyAuthorizationResult.cs diff --git a/src/Security/Authorization/Policy/src/PolicyEvaluator.cs b/src/Security/Authorization/Core/src/Policy/PolicyEvaluator.cs similarity index 100% rename from src/Security/Authorization/Policy/src/PolicyEvaluator.cs rename to src/Security/Authorization/Core/src/Policy/PolicyEvaluator.cs diff --git a/src/Security/Authorization/Core/src/Properties/AssemblyInfo.cs b/src/Security/Authorization/Core/src/Properties/AssemblyInfo.cs index 6897d6397e..aa5f527121 100644 --- a/src/Security/Authorization/Core/src/Properties/AssemblyInfo.cs +++ b/src/Security/Authorization/Core/src/Properties/AssemblyInfo.cs @@ -4,5 +4,6 @@ using System.Runtime.CompilerServices; using Microsoft.AspNetCore.Authorization; +// Microsoft.AspNetCore.Http.Abstractions [assembly: TypeForwardedTo(typeof(IAuthorizeData))] [assembly: TypeForwardedTo(typeof(IAllowAnonymous))] diff --git a/src/Security/Authorization/Core/src/Properties/Resources.Designer.cs b/src/Security/Authorization/Core/src/Properties/Resources.Designer.cs index c83fa9ea5e..876d0321b0 100644 --- a/src/Security/Authorization/Core/src/Properties/Resources.Designer.cs +++ b/src/Security/Authorization/Core/src/Properties/Resources.Designer.cs @@ -52,6 +52,20 @@ namespace Microsoft.AspNetCore.Authorization internal static string FormatException_RoleRequirementEmpty() => GetString("Exception_RoleRequirementEmpty"); + /// + /// Unable to find the required services. Please add all the required services by calling '{0}.{1}' inside the call to '{2}' in the application startup code. + /// + internal static string Exception_UnableToFindServices + { + get => GetString("Exception_UnableToFindServices"); + } + + /// + /// Unable to find the required services. Please add all the required services by calling '{0}.{1}' inside the call to '{2}' in the application startup code. + /// + internal static string FormatException_UnableToFindServices(object p0, object p1, object p2) + => string.Format(CultureInfo.CurrentCulture, GetString("Exception_UnableToFindServices"), p0, p1, p2); + private static string GetString(string name, params string[] formatterNames) { var value = _resourceManager.GetString(name); diff --git a/src/Security/Authorization/Core/src/Resources.resx b/src/Security/Authorization/Core/src/Resources.resx index a36e55d6b0..ebf1328616 100644 --- a/src/Security/Authorization/Core/src/Resources.resx +++ b/src/Security/Authorization/Core/src/Resources.resx @@ -126,4 +126,7 @@ At least one role must be specified. + + Unable to find the required services. Please add all the required services by calling '{0}.{1}' inside the call to '{2}' in the application startup code. + \ No newline at end of file diff --git a/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.csproj b/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.csproj index 2abea2d038..6f81120877 100644 --- a/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.csproj +++ b/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.csproj @@ -6,8 +6,5 @@ - - - diff --git a/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.netcoreapp3.0.cs b/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.netcoreapp3.0.cs index fd6faef8f6..14f716c60c 100644 --- a/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.netcoreapp3.0.cs +++ b/src/Security/Authorization/Policy/ref/Microsoft.AspNetCore.Authorization.Policy.netcoreapp3.0.cs @@ -1,57 +1,11 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -namespace Microsoft.AspNetCore.Authorization -{ - public partial class AuthorizationMiddleware - { - public AuthorizationMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider) { } - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) { throw null; } - } -} -namespace Microsoft.AspNetCore.Authorization.Policy -{ - public partial interface IPolicyEvaluator - { - System.Threading.Tasks.Task AuthenticateAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Http.HttpContext context); - System.Threading.Tasks.Task AuthorizeAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Authentication.AuthenticateResult authenticationResult, Microsoft.AspNetCore.Http.HttpContext context, object resource); - } - public partial class PolicyAuthorizationResult - { - internal PolicyAuthorizationResult() { } - public bool Challenged { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } - public bool Forbidden { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } - public bool Succeeded { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } - public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Challenge() { throw null; } - public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Forbid() { throw null; } - public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Success() { throw null; } - } - public partial class PolicyEvaluator : Microsoft.AspNetCore.Authorization.Policy.IPolicyEvaluator - { - public PolicyEvaluator(Microsoft.AspNetCore.Authorization.IAuthorizationService authorization) { } - [System.Diagnostics.DebuggerStepThroughAttribute] - public virtual System.Threading.Tasks.Task AuthenticateAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Http.HttpContext context) { throw null; } - [System.Diagnostics.DebuggerStepThroughAttribute] - public virtual System.Threading.Tasks.Task AuthorizeAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Authentication.AuthenticateResult authenticationResult, Microsoft.AspNetCore.Http.HttpContext context, object resource) { throw null; } - } -} -namespace Microsoft.AspNetCore.Builder -{ - public static partial class AuthorizationAppBuilderExtensions - { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseAuthorization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) { throw null; } - } - public static partial class AuthorizationEndpointConventionBuilderExtensions - { - public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder RequireAuthorization(this Microsoft.AspNetCore.Builder.IEndpointConventionBuilder builder) { throw null; } - public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder RequireAuthorization(this Microsoft.AspNetCore.Builder.IEndpointConventionBuilder builder, params Microsoft.AspNetCore.Authorization.IAuthorizeData[] authorizeData) { throw null; } - public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder RequireAuthorization(this Microsoft.AspNetCore.Builder.IEndpointConventionBuilder builder, params string[] policyNames) { throw null; } - } -} namespace Microsoft.Extensions.DependencyInjection { public static partial class PolicyServiceCollectionExtensions { + [System.ObsoleteAttribute("AddAuthorizationPolicyEvaluator is obsolete and will be removed in a future release. Use AddAuthorization instead.")] public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthorizationPolicyEvaluator(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) { throw null; } } } diff --git a/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj b/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj index ecd83793a4..2954d1564a 100644 --- a/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj +++ b/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj @@ -1,4 +1,4 @@ - + ASP.NET Core authorization policy helper classes. @@ -9,15 +9,8 @@ aspnetcore;authorization - - - - - - - diff --git a/src/Security/Authorization/Policy/src/PolicyServiceCollectionExtensions.cs b/src/Security/Authorization/Policy/src/PolicyServiceCollectionExtensions.cs index dc1056e696..a4eb53ba21 100644 --- a/src/Security/Authorization/Policy/src/PolicyServiceCollectionExtensions.cs +++ b/src/Security/Authorization/Policy/src/PolicyServiceCollectionExtensions.cs @@ -17,6 +17,7 @@ namespace Microsoft.Extensions.DependencyInjection /// /// The to add services to. /// The so that additional calls can be chained. + [Obsolete("AddAuthorizationPolicyEvaluator is obsolete and will be removed in a future release. Use AddAuthorization instead.")] public static IServiceCollection AddAuthorizationPolicyEvaluator(this IServiceCollection services) { if (services == null) @@ -25,8 +26,6 @@ namespace Microsoft.Extensions.DependencyInjection } services.AddAuthorization(); - services.TryAddSingleton(); - services.TryAdd(ServiceDescriptor.Transient()); return services; } } diff --git a/src/Security/Authorization/Policy/src/Properties/AssemblyInfo.cs b/src/Security/Authorization/Policy/src/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..890d26fd78 --- /dev/null +++ b/src/Security/Authorization/Policy/src/Properties/AssemblyInfo.cs @@ -0,0 +1,11 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Runtime.CompilerServices; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Authorization.Policy; + +// Microsoft.AspNetCore.Authorization +[assembly: TypeForwardedTo(typeof(IPolicyEvaluator))] +[assembly: TypeForwardedTo(typeof(PolicyAuthorizationResult))] +[assembly: TypeForwardedTo(typeof(PolicyEvaluator))] diff --git a/src/Security/Authorization/Policy/src/Properties/Resources.Designer.cs b/src/Security/Authorization/Policy/src/Properties/Resources.Designer.cs deleted file mode 100644 index d4e50a8631..0000000000 --- a/src/Security/Authorization/Policy/src/Properties/Resources.Designer.cs +++ /dev/null @@ -1,44 +0,0 @@ -// -namespace Microsoft.AspNetCore.Authorization.Policy -{ - using System.Globalization; - using System.Reflection; - using System.Resources; - - internal static class Resources - { - private static readonly ResourceManager _resourceManager - = new ResourceManager("Microsoft.AspNetCore.Authorization.Policy.Resources", typeof(Resources).GetTypeInfo().Assembly); - - /// - /// Unable to find the required services. Please add all the required services by calling '{0}.{1}' inside the call to '{2}' in the application startup code. - /// - internal static string Exception_UnableToFindServices - { - get => GetString("Exception_UnableToFindServices"); - } - - /// - /// Unable to find the required services. Please add all the required services by calling '{0}.{1}' inside the call to '{2}' in the application startup code. - /// - internal static string FormatException_UnableToFindServices(object p0, object p1, object p2) - => string.Format(CultureInfo.CurrentCulture, GetString("Exception_UnableToFindServices"), p0, p1, p2); - - private static string GetString(string name, params string[] formatterNames) - { - var value = _resourceManager.GetString(name); - - System.Diagnostics.Debug.Assert(value != null); - - if (formatterNames != null) - { - for (var i = 0; i < formatterNames.Length; i++) - { - value = value.Replace("{" + formatterNames[i] + "}", "{" + i + "}"); - } - } - - return value; - } - } -} diff --git a/src/Security/Authorization/Policy/src/Resources.resx b/src/Security/Authorization/Policy/src/Resources.resx deleted file mode 100644 index 15d6f7d53c..0000000000 --- a/src/Security/Authorization/Policy/src/Resources.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Unable to find the required services. Please add all the required services by calling '{0}.{1}' inside the call to '{2}' in the application startup code. - - \ No newline at end of file diff --git a/src/Security/Authorization/test/AuthorizationAppBuilderExtensionsTests.cs b/src/Security/Authorization/test/AuthorizationAppBuilderExtensionsTests.cs index ffb3ddeb1b..09f20b8f49 100644 --- a/src/Security/Authorization/test/AuthorizationAppBuilderExtensionsTests.cs +++ b/src/Security/Authorization/test/AuthorizationAppBuilderExtensionsTests.cs @@ -65,7 +65,7 @@ namespace Microsoft.AspNetCore.Authorization.Test // Assert Assert.Equal( "Unable to find the required services. Please add all the required services by calling " + - "'IServiceCollection.AddAuthorizationPolicyEvaluator' inside the call to 'ConfigureServices(...)' " + + "'IServiceCollection.AddAuthorization' inside the call to 'ConfigureServices(...)' " + "in the application startup code.", ex.Message); } @@ -74,7 +74,9 @@ namespace Microsoft.AspNetCore.Authorization.Test { var services = new ServiceCollection(); +#pragma warning disable CS0618 // Type or member is obsolete services.AddAuthorizationPolicyEvaluator(); +#pragma warning restore CS0618 // Type or member is obsolete services.AddLogging(); services.AddSingleton(authenticationService); diff --git a/src/Security/Authorization/test/AuthorizationMiddlewareTests.cs b/src/Security/Authorization/test/AuthorizationMiddlewareTests.cs index e4db07fba5..6d2ed9b046 100644 --- a/src/Security/Authorization/test/AuthorizationMiddlewareTests.cs +++ b/src/Security/Authorization/test/AuthorizationMiddlewareTests.cs @@ -371,7 +371,6 @@ namespace Microsoft.AspNetCore.Authorization.Test serviceCollection.AddOptions(); serviceCollection.AddLogging(); serviceCollection.AddAuthorization(); - serviceCollection.AddAuthorizationPolicyEvaluator(); registerServices?.Invoke(serviceCollection); var serviceProvider = serviceCollection.BuildServiceProvider(); @@ -411,4 +410,4 @@ namespace Microsoft.AspNetCore.Authorization.Test } } } -} \ No newline at end of file +} diff --git a/src/Security/Authorization/test/PolicyEvaluatorTests.cs b/src/Security/Authorization/test/PolicyEvaluatorTests.cs index 2384e6db5f..4f374a884e 100644 --- a/src/Security/Authorization/test/PolicyEvaluatorTests.cs +++ b/src/Security/Authorization/test/PolicyEvaluatorTests.cs @@ -124,7 +124,6 @@ namespace Microsoft.AspNetCore.Authorization.Policy.Test { var services = new ServiceCollection() .AddAuthorization() - .AddAuthorizationPolicyEvaluator() .AddLogging() .AddOptions(); setupServices?.Invoke(services); @@ -206,4 +205,4 @@ namespace Microsoft.AspNetCore.Authorization.Policy.Test } } -} \ No newline at end of file +} diff --git a/src/SignalR/clients/ts/FunctionalTests/Startup.cs b/src/SignalR/clients/ts/FunctionalTests/Startup.cs index b5a5ea0252..8926142fb5 100644 --- a/src/SignalR/clients/ts/FunctionalTests/Startup.cs +++ b/src/SignalR/clients/ts/FunctionalTests/Startup.cs @@ -96,8 +96,6 @@ namespace FunctionalTests } }; }); - - services.AddAuthorizationPolicyEvaluator(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) diff --git a/src/SignalR/common/Http.Connections/src/ConnectionsDependencyInjectionExtensions.cs b/src/SignalR/common/Http.Connections/src/ConnectionsDependencyInjectionExtensions.cs index feb78771ca..cebc632b1f 100644 --- a/src/SignalR/common/Http.Connections/src/ConnectionsDependencyInjectionExtensions.cs +++ b/src/SignalR/common/Http.Connections/src/ConnectionsDependencyInjectionExtensions.cs @@ -22,7 +22,7 @@ namespace Microsoft.Extensions.DependencyInjection public static IServiceCollection AddConnections(this IServiceCollection services) { services.AddRouting(); - services.AddAuthorizationPolicyEvaluator(); + services.AddAuthorization(); services.TryAddEnumerable(ServiceDescriptor.Singleton, ConnectionOptionsSetup>()); services.TryAddSingleton(); services.TryAddSingleton(); diff --git a/src/SignalR/common/Http.Connections/test/HttpConnectionDispatcherTests.cs b/src/SignalR/common/Http.Connections/test/HttpConnectionDispatcherTests.cs index ca5c9e0411..1df4120862 100644 --- a/src/SignalR/common/Http.Connections/test/HttpConnectionDispatcherTests.cs +++ b/src/SignalR/common/Http.Connections/test/HttpConnectionDispatcherTests.cs @@ -1360,7 +1360,6 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests var services = new ServiceCollection(); services.AddOptions(); services.AddSingleton(); - services.AddAuthorizationPolicyEvaluator(); services.AddAuthorization(o => { o.AddPolicy("test", policy => policy.RequireClaim(ClaimTypes.NameIdentifier)); @@ -1406,7 +1405,6 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests var services = new ServiceCollection(); services.AddOptions(); services.AddSingleton(); - services.AddAuthorizationPolicyEvaluator(); services.AddAuthorization(o => { o.AddPolicy("test", policy => policy.RequireClaim(ClaimTypes.NameIdentifier)); @@ -1455,7 +1453,6 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests var services = new ServiceCollection(); services.AddOptions(); services.AddSingleton(); - services.AddAuthorizationPolicyEvaluator(); services.AddAuthorization(o => { o.AddPolicy("test", policy => @@ -1515,7 +1512,6 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests var services = new ServiceCollection(); services.AddOptions(); services.AddSingleton(); - services.AddAuthorizationPolicyEvaluator(); services.AddAuthorization(o => { o.AddPolicy("test", policy => @@ -1610,7 +1606,6 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests policy.AddAuthenticationSchemes("Default"); }); }); - services.AddAuthorizationPolicyEvaluator(); services.AddLogging(); services.AddAuthenticationCore(o => { @@ -1672,7 +1667,6 @@ namespace Microsoft.AspNetCore.Http.Connections.Tests policy.AddAuthenticationSchemes("Default"); }); }); - services.AddAuthorizationPolicyEvaluator(); services.AddLogging(); services.AddAuthenticationCore(o => { diff --git a/src/SignalR/server/SignalR/test/Startup.cs b/src/SignalR/server/SignalR/test/Startup.cs index 9432148ec9..0f8ff7f21a 100644 --- a/src/SignalR/server/SignalR/test/Startup.cs +++ b/src/SignalR/server/SignalR/test/Startup.cs @@ -23,7 +23,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme; }).AddCookie(); - services.AddAuthorizationPolicyEvaluator(); + services.AddAuthorization(); } public void Configure(IApplicationBuilder app)