From 86c393070ce6a2d1d7d2079a68297f1b80c8d5b6 Mon Sep 17 00:00:00 2001 From: Nico Lachmuth Date: Fri, 13 Feb 2026 18:26:40 +0100 Subject: [PATCH] add required policy to ActionApiDescriptionModel --- .../Mvc/AspNetCoreApiDescriptionModelProvider.cs | 11 +++++++++-- .../Abp/Http/Modeling/ActionApiDescriptionModel.cs | 5 ++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs index ad3dcc003e..ce0205eb6b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs @@ -121,13 +121,19 @@ public class AspNetCoreApiDescriptionModelProvider : IApiDescriptionModelProvide Logger.LogDebug($"ActionApiDescriptionModel.Create: {controllerModel.ControllerName}.{uniqueMethodName}"); bool? allowAnonymous = null; + string? requiredPolicy = null; if (apiDescription.ActionDescriptor.EndpointMetadata.Any(x => x is IAllowAnonymous)) { allowAnonymous = true; } - else if (apiDescription.ActionDescriptor.EndpointMetadata.Any(x => x is IAuthorizeData)) + else { - allowAnonymous = false; + var authorizeData = apiDescription.ActionDescriptor.EndpointMetadata.FirstOrDefault(x => x is IAuthorizeData); + if (authorizeData != null) + { + allowAnonymous = false; + requiredPolicy = (authorizeData as IAuthorizeData)?.Policy; + } } var implementFrom = controllerType.FullName; @@ -147,6 +153,7 @@ public class AspNetCoreApiDescriptionModelProvider : IApiDescriptionModelProvide apiDescription.HttpMethod, GetSupportedVersions(controllerType, method, setting), allowAnonymous, + requiredPolicy, implementFrom ) ); diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ActionApiDescriptionModel.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ActionApiDescriptionModel.cs index 890637d801..f97e38ed17 100644 --- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ActionApiDescriptionModel.cs +++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ActionApiDescriptionModel.cs @@ -28,6 +28,8 @@ public class ActionApiDescriptionModel public bool? AllowAnonymous { get; set; } + public string? RequiredPolicy { get; set; } + public string? ImplementFrom { get; set; } public ActionApiDescriptionModel() @@ -35,7 +37,7 @@ public class ActionApiDescriptionModel } - public static ActionApiDescriptionModel Create([NotNull] string uniqueName, [NotNull] MethodInfo method, [NotNull] string url, string? httpMethod, [NotNull] IList supportedVersions, bool? allowAnonymous = null, string? implementFrom = null) + public static ActionApiDescriptionModel Create([NotNull] string uniqueName, [NotNull] MethodInfo method, [NotNull] string url, string? httpMethod, [NotNull] IList supportedVersions, bool? allowAnonymous = null, string? requiredPolicy, string? implementFrom = null) { Check.NotNull(uniqueName, nameof(uniqueName)); Check.NotNull(method, nameof(method)); @@ -56,6 +58,7 @@ public class ActionApiDescriptionModel .ToList(), SupportedVersions = supportedVersions, AllowAnonymous = allowAnonymous, + RequiredPolicy = requiredPolicy, ImplementFrom = implementFrom }; }