From bdbe95bc79907b38c8d978086d4242172b8967cf Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 17 Sep 2024 19:40:51 +0800 Subject: [PATCH] Set `SendExceptionDataToClientTypes` from options. --- .../ExceptionHandling/UserExceptionInformer.cs | 1 + .../Controllers/ErrorController.cs | 1 + .../Mvc/ExceptionHandling/AbpExceptionFilter.cs | 1 + .../ExceptionHandling/AbpExceptionPageFilter.cs | 1 + .../AbpExceptionHandlingMiddleware.cs | 1 + .../AbpExceptionHandlingOptions.cs | 16 +++++++++++++--- .../DefaultExceptionToErrorInfoConverter.cs | 6 +----- .../AuditLogInfoToAuditLogConverter.cs | 1 + 8 files changed, 20 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/ExceptionHandling/UserExceptionInformer.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/ExceptionHandling/UserExceptionInformer.cs index 6773e4ff37..a8b0f71dea 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/ExceptionHandling/UserExceptionInformer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/ExceptionHandling/UserExceptionInformer.cs @@ -67,6 +67,7 @@ public class UserExceptionInformer : IUserExceptionInformer, IScopedDependency { options.SendExceptionsDetailsToClients = Options.SendExceptionsDetailsToClients; options.SendStackTraceToClients = Options.SendStackTraceToClients; + options.SendExceptionDataToClientTypes = Options.SendExceptionDataToClientTypes; }); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Controllers/ErrorController.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Controllers/ErrorController.cs index e38995a685..e9800c8788 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Controllers/ErrorController.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Controllers/ErrorController.cs @@ -51,6 +51,7 @@ public class ErrorController : AbpController { options.SendExceptionsDetailsToClients = ExceptionHandlingOptions.SendExceptionsDetailsToClients; options.SendStackTraceToClients = ExceptionHandlingOptions.SendStackTraceToClients; + options.SendExceptionDataToClientTypes = ExceptionHandlingOptions.SendExceptionDataToClientTypes; }); if (httpStatusCode == 0) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs index 3b60e74d78..03684b063d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs @@ -102,6 +102,7 @@ public class AbpExceptionFilter : IAsyncExceptionFilter, IAbpFilter, ITransientD { options.SendExceptionsDetailsToClients = exceptionHandlingOptions.SendExceptionsDetailsToClients; options.SendStackTraceToClients = exceptionHandlingOptions.SendStackTraceToClients; + options.SendExceptionDataToClientTypes = exceptionHandlingOptions.SendExceptionDataToClientTypes; }); var remoteServiceErrorInfoBuilder = new StringBuilder(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs index 56814718b6..8869293c7a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs @@ -81,6 +81,7 @@ public class AbpExceptionPageFilter : IAsyncPageFilter, IAbpFilter, ITransientDe { options.SendExceptionsDetailsToClients = exceptionHandlingOptions.SendExceptionsDetailsToClients; options.SendStackTraceToClients = exceptionHandlingOptions.SendStackTraceToClients; + options.SendExceptionDataToClientTypes = exceptionHandlingOptions.SendExceptionDataToClientTypes; }); var logLevel = context.Exception!.GetLogLevel(); diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingMiddleware.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingMiddleware.cs index 7d5ef610e5..e144812753 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingMiddleware.cs @@ -92,6 +92,7 @@ public class AbpExceptionHandlingMiddleware : AbpMiddlewareBase, ITransientDepen { options.SendExceptionsDetailsToClients = exceptionHandlingOptions.SendExceptionsDetailsToClients; options.SendStackTraceToClients = exceptionHandlingOptions.SendStackTraceToClients; + options.SendExceptionDataToClientTypes = exceptionHandlingOptions.SendExceptionDataToClientTypes; }) ) ) diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingOptions.cs b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingOptions.cs index 3194e02c9b..e3bde2e813 100644 --- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingOptions.cs +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingOptions.cs @@ -5,9 +5,19 @@ namespace Volo.Abp.AspNetCore.ExceptionHandling; public class AbpExceptionHandlingOptions { - public bool SendExceptionsDetailsToClients { get; set; } = false; + public bool SendExceptionsDetailsToClients { get; set; } - public bool SendStackTraceToClients { get; set; } = true; + public bool SendStackTraceToClients { get; set; } - public List SendExceptionDataToClientTypes { get; } = new List(); + public List SendExceptionDataToClientTypes { get; set; } + + public AbpExceptionHandlingOptions() + { + SendExceptionsDetailsToClients = false; + SendStackTraceToClients = true; + SendExceptionDataToClientTypes = + [ + typeof(IBusinessException) + ]; + } } diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs index 56f61555d2..63d6aa82ad 100644 --- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs @@ -329,11 +329,7 @@ public class DefaultExceptionToErrorInfoConverter : IExceptionToErrorInfoConvert return new AbpExceptionHandlingOptions { SendExceptionsDetailsToClients = false, - SendStackTraceToClients = true, - SendExceptionDataToClientTypes = - { - typeof(IBusinessException) - } + SendStackTraceToClients = true }; } } diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogInfoToAuditLogConverter.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogInfoToAuditLogConverter.cs index fccc5b65fe..94f0622714 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogInfoToAuditLogConverter.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogInfoToAuditLogConverter.cs @@ -57,6 +57,7 @@ public class AuditLogInfoToAuditLogConverter : IAuditLogInfoToAuditLogConverter, { options.SendExceptionsDetailsToClients = ExceptionHandlingOptions.SendExceptionsDetailsToClients; options.SendStackTraceToClients = ExceptionHandlingOptions.SendStackTraceToClients; + options.SendExceptionDataToClientTypes = ExceptionHandlingOptions.SendExceptionDataToClientTypes; })) ?? new List();