From 7abd20f9ec72b57ebbc90e383cf970af87552dd1 Mon Sep 17 00:00:00 2001 From: Bertrand Le Roy Date: Wed, 9 Oct 2013 11:52:07 -0700 Subject: [PATCH] Caching done right --- .../Models/SslSettingsPart.cs | 8 ++++++++ .../Services/SecureSocketsLayerService.cs | 16 +++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Models/SslSettingsPart.cs b/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Models/SslSettingsPart.cs index c42cca698..3a817326a 100644 --- a/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Models/SslSettingsPart.cs +++ b/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Models/SslSettingsPart.cs @@ -3,6 +3,14 @@ using Orchard.ContentManagement; using Orchard.ContentManagement.FieldStorage.InfosetStorage; namespace Orchard.SecureSocketsLayer.Models { + internal class SslSettings { + public string Urls { get; set; } + public bool SecureEverything { get; set; } + public bool CustomEnabled { get; set; } + public string SecureHostName { get; set; } + public string InsecureHostName { get; set; } + } + public class SslSettingsPart : ContentPart { public string Urls { diff --git a/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Services/SecureSocketsLayerService.cs b/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Services/SecureSocketsLayerService.cs index 331ca36bf..53c00cb2d 100644 --- a/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Services/SecureSocketsLayerService.cs +++ b/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Services/SecureSocketsLayerService.cs @@ -150,7 +150,7 @@ namespace Orchard.SecureSocketsLayer.Services { return requestContext; } - private static bool IsRequestProtected(string path, string appPath, SslSettingsPart settings) { + private static bool IsRequestProtected(string path, string appPath, SslSettings settings) { var match = false; var sr = new StringReader(settings.Urls ?? ""); string pattern; @@ -183,8 +183,18 @@ namespace Orchard.SecureSocketsLayer.Services { : string.Equals(requestPath, pattern, StringComparison.OrdinalIgnoreCase); } - private SslSettingsPart GetSettings() { - return _cacheManager.Get("SslSettings", ctx => _workContextAccessor.GetContext().CurrentSite.As()); + private SslSettings GetSettings() { + return _cacheManager.Get("SslSettings", + ctx => { + var settingsPart = _workContextAccessor.GetContext().CurrentSite.As(); + return new SslSettings { + Urls = settingsPart.Urls, + CustomEnabled = settingsPart.CustomEnabled, + SecureEverything = settingsPart.SecureEverything, + SecureHostName = settingsPart.SecureHostName, + InsecureHostName = settingsPart.InsecureHostName + }; + }); } private string MakeInsecure(string path) {