Skip to content

Commit daaa691

Browse files
authored
Merge pull request #32 from unic/feature/add_cache_control_header
feat: add a possibility to specify no-cache and no-store Cache-Control
2 parents e560ca3 + 85bc698 commit daaa691

File tree

5 files changed

+27
-5
lines changed

5 files changed

+27
-5
lines changed

be/src/Unic.UrlMapper2/code/App_Config/Include/UrlMapper2/UrlMapper2.Settings.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313

1414
<setting name="UrlMapper2.UseOriginalUrlHeaderForJssProcessor" set:value="false" />
1515
<setting name="UrlMapper2.OriginalUrlHeaderForJssProcessor" set:value="set-me" />
16+
17+
<setting name="UrlMapper2.CacheControl.SetNoCache" set:value="false" />
18+
<setting name="UrlMapper2.CacheControl.SetNoStore" set:value="false" />
1619
</settings>
1720
</sitecore>
1821
</configuration>

be/src/Unic.UrlMapper2/code/Definitions/Constants.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ public struct Settings
5454
public const string UseOriginalUrlHeaderForJssProcessor = "UrlMapper2.UseOriginalUrlHeaderForJssProcessor";
5555

5656
public const string OriginalUrlHeaderForJssProcessor = "UrlMapper2.OriginalUrlHeaderForJssProcessor";
57+
58+
public const string CacheControlHeaderSetNoCache = "UrlMapper2.CacheControl.SetNoCache";
59+
60+
public const string CacheControlHeaderSetNoStore = "UrlMapper2.CacheControl.SetNoStore";
5761
}
5862

5963
public struct RegularExpressions

be/src/Unic.UrlMapper2/code/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@
3030
//
3131
// You can specify all the values or you can default the Revision and Build Numbers
3232
// by using the '*' as shown below:
33-
[assembly: AssemblyVersion("1.3.4.0")]
34-
[assembly: AssemblyFileVersion("1.3.4.0")]
33+
[assembly: AssemblyVersion("1.4.0")]
34+
[assembly: AssemblyFileVersion("1.4.0")]

be/src/Unic.UrlMapper2/code/Services/RedirectionService.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,24 @@ public class RedirectionService : IRedirectionService
2020
private readonly IUrlMapperContext context;
2121
private readonly BaseLinkManager linkManager;
2222
private readonly BaseMediaManager mediaManager;
23+
private readonly BaseSettings baseSettings;
2324

2425
public RedirectionService(
2526
IRedirectSearcher redirectSearcher,
2627
ISanitizer sanitizer,
2728
BaseLog logger,
2829
IUrlMapperContext context,
2930
BaseLinkManager linkManager,
30-
BaseMediaManager mediaManager)
31+
BaseMediaManager mediaManager,
32+
BaseSettings baseSettings)
3133
{
3234
this.redirectSearcher = redirectSearcher;
3335
this.sanitizer = sanitizer;
3436
this.logger = logger;
3537
this.context = context;
3638
this.linkManager = linkManager;
3739
this.mediaManager = mediaManager;
40+
this.baseSettings = baseSettings;
3841
}
3942

4043
public virtual void PerformRedirect(RedirectSearchData redirectSearchData, HttpContextBase httpContext)
@@ -130,6 +133,18 @@ protected virtual void PerformRedirect(Redirect redirect, HttpContextBase httpCo
130133
return;
131134
}
132135

136+
var setNoCache = this.baseSettings.GetBoolSetting(Constants.Settings.CacheControlHeaderSetNoCache, false);
137+
var setNoStore = this.baseSettings.GetBoolSetting(Constants.Settings.CacheControlHeaderSetNoStore, false);
138+
if (setNoCache)
139+
{
140+
httpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
141+
}
142+
143+
if (setNoStore)
144+
{
145+
httpContext.Response.Cache.SetNoStore();
146+
}
147+
133148
this.logger.Debug($"Performing {redirect.RedirectType} redirect to {targetUrl}", this);
134149

135150
switch (redirect.RedirectType)

be/src/Unic.UrlMapper2/serialization/Script Library/UrlMapper2/Development/Generate-DistributionPackage.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ SharedFields:
1111
# Inspired by https://github.com/SitecorePowerShell/Console/blob/b751ee62351290b955d750c7c71aed6b210d788b/Spe/Data/Unicorn/SPE/Scripts/SPE/SPE/Core/Platform/Development/PowerShell%20Extensions%20Maintena/Prepare%20Console%20Distribution.yml
1212
1313
#TODO during release process: Update the $version variable
14-
$version = "1.0"
14+
$version = "1.4.0"
1515
1616
$package = New-Package "UrlMapper2"
1717
$package.Sources.Clear()
1818
19-
$package.Metadata.Author = "David Szöke, Tobias Studer, Christian Hahnloser"
19+
$package.Metadata.Author = "Unic AG"
2020
$package.Metadata.Publisher = "Unic AG"
2121
$package.Metadata.Version = $version
2222

0 commit comments

Comments
 (0)