From 00a0fce9e348b364b7ad0f0f9ec89e3fb4513ad9 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 10 Jul 2018 15:42:45 +0300 Subject: [PATCH] Disable audit logging for Get requests by default. --- .../AspNetCore/Auditing/AbpAuditingMiddleware.cs | 13 ++++++++++--- .../Volo/Abp/Auditing/AbpAuditingOptions.cs | 6 ++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAuditingMiddleware.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAuditingMiddleware.cs index 97bc76338c..8b1e63fd4d 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAuditingMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAuditingMiddleware.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System; +using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Options; using Volo.Abp.Auditing; @@ -29,7 +30,7 @@ namespace Volo.Abp.AspNetCore.Auditing public async Task Invoke(HttpContext httpContext) { - if (!ShouldWriteAuditLog()) + if (!ShouldWriteAuditLog(httpContext)) { await _next(httpContext); return; @@ -48,7 +49,7 @@ namespace Volo.Abp.AspNetCore.Auditing } } - private bool ShouldWriteAuditLog() + private bool ShouldWriteAuditLog(HttpContext httpContext) { if (!Options.IsEnabled) { @@ -60,6 +61,12 @@ namespace Volo.Abp.AspNetCore.Auditing return false; } + if (!Options.IsEnabledForGetRequests && + string.Equals(httpContext.Request.Method, HttpMethods.Get, StringComparison.OrdinalIgnoreCase)) + { + return false; + } + return true; } } diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AbpAuditingOptions.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AbpAuditingOptions.cs index 85f441894c..94ffc6670b 100644 --- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AbpAuditingOptions.cs +++ b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AbpAuditingOptions.cs @@ -24,6 +24,12 @@ namespace Volo.Abp.Auditing public List IgnoredTypes { get; } public IEntityHistorySelectorList EntityHistorySelectors { get; } + + //TODO: Move this to asp.net core layer or convert it to a more dynamic strategy? + /// + /// Default: false. + /// + public bool IsEnabledForGetRequests { get; set; } public AbpAuditingOptions() {