Prevent Delivery API output cache configuration from affecting other controllers (#17405)

Co-authored-by: Elitsa <elm@umbraco.dk>
This commit is contained in:
Kenn Jacobsen
2024-11-04 18:56:17 +01:00
committed by GitHub
parent 754276448a
commit 30d4ec4ef5
2 changed files with 20 additions and 1 deletions

View File

@@ -0,0 +1,19 @@
using Microsoft.AspNetCore.OutputCaching;
namespace Umbraco.Cms.Api.Delivery.Caching;
internal sealed class NoOutputCachePolicy : IOutputCachePolicy
{
ValueTask IOutputCachePolicy.CacheRequestAsync(OutputCacheContext context, CancellationToken cancellationToken)
{
context.EnableOutputCaching = false;
return ValueTask.CompletedTask;
}
ValueTask IOutputCachePolicy.ServeFromCacheAsync(OutputCacheContext context, CancellationToken cancellationToken)
=> ValueTask.CompletedTask;
ValueTask IOutputCachePolicy.ServeResponseAsync(OutputCacheContext context, CancellationToken cancellationToken)
=> ValueTask.CompletedTask;
}

View File

@@ -105,7 +105,7 @@ public static class UmbracoBuilderExtensions
builder.Services.AddOutputCache(options =>
{
options.AddBasePolicy(_ => { });
options.AddBasePolicy(build => build.AddPolicy<NoOutputCachePolicy>());
if (outputCacheSettings.ContentDuration.TotalSeconds > 0)
{