From eb24e42f09bc47bc9bbfbdcff30010260b019227 Mon Sep 17 00:00:00 2001 From: JimBobSquarePants Date: Tue, 6 Aug 2013 00:55:59 +0100 Subject: [PATCH] v2.3.0.3 Added support for authorization config. Former-commit-id: aa09b07f09009deb470fd44b875b70c0fe95442b --- .../NET45/Caching/DiskCache.cs | 22 +-- .../NET45/Caching/SQLContext.cs | 4 +- .../HttpModules/ImageProcessingModule.cs | 134 +++++++++++------- .../NET45/Properties/AssemblyInfo.cs | 4 +- .../Helpers/Extensions/StringExtensions.cs | 36 +---- src/ImageProcessor/Imaging/ImageUtils.cs | 59 +++++--- src/ImageProcessor/Processors/Format.cs | 2 +- src/ImageProcessor/Properties/AssemblyInfo.cs | 4 +- src/Nuget/ImageProcessor.1.6.0.1.nupkg | Bin 54051 -> 0 bytes src/Nuget/ImageProcessor.1.7.0.1.nupkg | Bin 0 -> 54281 bytes ...Processor.Web.2.2.3.3.nupkg.REMOVED.git-id | 1 - ...Processor.Web.2.3.0.0.nupkg.REMOVED.git-id | 1 - ...Processor.Web.2.3.0.2.nupkg.REMOVED.git-id | 1 + ...Processor.Web.2.3.0.3.nupkg.REMOVED.git-id | 1 + .../NET45/Test_Website_NET45/Web.config | 129 ++++++++--------- 15 files changed, 207 insertions(+), 191 deletions(-) delete mode 100644 src/Nuget/ImageProcessor.1.6.0.1.nupkg create mode 100644 src/Nuget/ImageProcessor.1.7.0.1.nupkg delete mode 100644 src/Nuget/ImageProcessor.Web.2.2.3.3.nupkg.REMOVED.git-id delete mode 100644 src/Nuget/ImageProcessor.Web.2.3.0.0.nupkg.REMOVED.git-id create mode 100644 src/Nuget/ImageProcessor.Web.2.3.0.2.nupkg.REMOVED.git-id create mode 100644 src/Nuget/ImageProcessor.Web.2.3.0.3.nupkg.REMOVED.git-id diff --git a/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs b/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs index 911441ebd..7e30aaf9a 100644 --- a/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs +++ b/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs @@ -11,6 +11,7 @@ namespace ImageProcessor.Web.Caching using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; + using System.Drawing; using System.Globalization; using System.IO; using System.Linq; @@ -19,6 +20,7 @@ namespace ImageProcessor.Web.Caching using System.Web; using System.Web.Hosting; using ImageProcessor.Helpers.Extensions; + using ImageProcessor.Imaging; using ImageProcessor.Web.Config; using ImageProcessor.Web.Helpers; #endregion @@ -429,7 +431,7 @@ namespace ImageProcessor.Web.Caching // Use an md5 hash of the full path including the querystring to create the image name. // That name can also be used as a key for the cached image and we should be able to use // The first character of that hash as a subfolder. - string parsedExtension = this.ParseExtension(this.fullPath); + string parsedExtension = ImageUtils.GetExtension(this.fullPath); string fallbackExtension = this.imageName.Substring(this.imageName.LastIndexOf(".", StringComparison.Ordinal) + 1); string encryptedName = this.fullPath.ToMD5Fingerprint(); string firstSubpath = encryptedName.Substring(0, 1); @@ -438,7 +440,7 @@ namespace ImageProcessor.Web.Caching string cachedFileName = string.Format( "{0}.{1}", encryptedName, - !string.IsNullOrWhiteSpace(parsedExtension) ? parsedExtension : fallbackExtension); + !string.IsNullOrWhiteSpace(parsedExtension) ? parsedExtension.Replace(".", string.Empty) : fallbackExtension); cachedPath = Path.Combine(AbsoluteCachePath, firstSubpath, secondSubpath, cachedFileName); } @@ -446,22 +448,6 @@ namespace ImageProcessor.Web.Caching return cachedPath; } - /// - /// Returns the correct file extension for the given string input - /// - /// - /// The string to parse. - /// - /// - /// The correct file extension for the given string input if it can find one; otherwise an empty string. - /// - private string ParseExtension(string input) - { - Match match = FormatRegex.Match(input); - - return match.Success ? match.Value : string.Empty; - } - /// /// The rough date time compare. /// diff --git a/src/ImageProcessor.Web/NET45/Caching/SQLContext.cs b/src/ImageProcessor.Web/NET45/Caching/SQLContext.cs index 4d2bb3983..fe1da938d 100644 --- a/src/ImageProcessor.Web/NET45/Caching/SQLContext.cs +++ b/src/ImageProcessor.Web/NET45/Caching/SQLContext.cs @@ -73,9 +73,9 @@ namespace ImageProcessor.Web.Caching } } } - catch (Exception ex) + catch { - throw ex; + throw; } } diff --git a/src/ImageProcessor.Web/NET45/HttpModules/ImageProcessingModule.cs b/src/ImageProcessor.Web/NET45/HttpModules/ImageProcessingModule.cs index 74e5df1e9..2cd0d3b1f 100644 --- a/src/ImageProcessor.Web/NET45/HttpModules/ImageProcessingModule.cs +++ b/src/ImageProcessor.Web/NET45/HttpModules/ImageProcessingModule.cs @@ -12,10 +12,15 @@ namespace ImageProcessor.Web.HttpModules using System.IO; using System.Net; using System.Reflection; + using System.Security; + using System.Security.Permissions; + using System.Security.Principal; using System.Threading; using System.Threading.Tasks; using System.Web; using System.Web.Hosting; + using System.Web.Security; + using ImageProcessor.Helpers.Extensions; using ImageProcessor.Imaging; using ImageProcessor.Web.Caching; @@ -74,16 +79,15 @@ namespace ImageProcessor.Web.HttpModules #if NET45 - EventHandlerTaskAsyncHelper wrapper = new EventHandlerTaskAsyncHelper(this.ContextBeginRequest); - context.AddOnBeginRequestAsync(wrapper.BeginEventHandler, wrapper.EndEventHandler); + EventHandlerTaskAsyncHelper wrapper = new EventHandlerTaskAsyncHelper(this.PostAuthorizeRequest); + context.AddOnPostAuthorizeRequestAsync(wrapper.BeginEventHandler, wrapper.EndEventHandler); #else - context.BeginRequest += this.ContextBeginRequest; + context.PostAuthorizeRequest += this.PostAuthorizeRequest; #endif - context.PreSendRequestHeaders += this.ContextPreSendRequestHeaders; } @@ -99,7 +103,7 @@ namespace ImageProcessor.Web.HttpModules #if NET45 /// - /// Occurs as the first event in the HTTP pipeline chain of execution when ASP.NET responds to a request. + /// Occurs when the user for the current request has been authorized. /// /// /// The source of the event. @@ -110,7 +114,7 @@ namespace ImageProcessor.Web.HttpModules /// /// The . /// - private Task ContextBeginRequest(object sender, EventArgs e) + private Task PostAuthorizeRequest(object sender, EventArgs e) { HttpContext context = ((HttpApplication)sender).Context; return this.ProcessImageAsync(context); @@ -119,11 +123,11 @@ namespace ImageProcessor.Web.HttpModules #else /// - /// Occurs as the first event in the HTTP pipeline chain of execution when ASP.NET responds to a request. + /// Occurs when the user for the current request has been authorized. /// /// The source of the event. /// An EventArgs that contains the event data. - private async void ContextBeginRequest(object sender, EventArgs e) + private async void PostAuthorizeRequest(object sender, EventArgs e) { HttpContext context = ((HttpApplication)sender).Context; await this.ProcessImageAsync(context); @@ -211,73 +215,103 @@ namespace ImageProcessor.Web.HttpModules // Create a new cache to help process and cache the request. DiskCache cache = new DiskCache(request, requestPath, fullPath, imageName, isRemote); - // Is the file new or updated? - bool isNewOrUpdated = await cache.IsNewOrUpdatedFileAsync(); + // Since we are now rewriting the path we need to check again that the current user has access + // to the rewritten path. + // Get the user for the current request + // If the user is anonymous or authentication doesn't work for this suffix avoid a NullReferenceException + // in the UrlAuthorizationModule by creating a generic identity. + string virtualCachedPath = cache.GetVirtualCachedPath(); + + IPrincipal user = context.User + ?? new GenericPrincipal(new GenericIdentity(string.Empty, string.Empty), new string[0]); + + // Do we have permission to call UrlAuthorizationModule.CheckUrlAccessForPrincipal? + PermissionSet permission = new PermissionSet(PermissionState.None); + permission.AddPermission(new AspNetHostingPermission(AspNetHostingPermissionLevel.Unrestricted)); + bool hasPermission = permission.IsSubsetOf(AppDomain.CurrentDomain.PermissionSet); + + bool isAllowed = true; - // Only process if the file has been updated. - if (isNewOrUpdated) + // Run the rewritten path past the auth system again, using the result as the default "AllowAccess" value + if (hasPermission && !context.SkipAuthorization) { - // Process the image. - using (ImageFactory imageFactory = new ImageFactory()) + isAllowed = UrlAuthorizationModule.CheckUrlAccessForPrincipal(virtualCachedPath, user, "GET"); + } + + if (isAllowed) + { + // Is the file new or updated? + bool isNewOrUpdated = await cache.IsNewOrUpdatedFileAsync(); + + // Only process if the file has been updated. + if (isNewOrUpdated) { - if (isRemote) + // Process the image. + using (ImageFactory imageFactory = new ImageFactory()) { - Uri uri = new Uri(requestPath); + if (isRemote) + { + Uri uri = new Uri(requestPath); - RemoteFile remoteFile = new RemoteFile(uri, false); + RemoteFile remoteFile = new RemoteFile(uri, false); - // Prevent response blocking. - WebResponse webResponse = await remoteFile.GetWebResponseAsync().ConfigureAwait(false); + // Prevent response blocking. + WebResponse webResponse = await remoteFile.GetWebResponseAsync().ConfigureAwait(false); - using (MemoryStream memoryStream = new MemoryStream()) - { - using (WebResponse response = webResponse) + using (MemoryStream memoryStream = new MemoryStream()) { - using (Stream responseStream = response.GetResponseStream()) + using (WebResponse response = webResponse) { - if (responseStream != null) + using (Stream responseStream = response.GetResponseStream()) { - // Trim the cache. - await cache.TrimCachedFoldersAsync(); + if (responseStream != null) + { + // Trim the cache. + await cache.TrimCachedFoldersAsync(); - responseStream.CopyTo(memoryStream); + responseStream.CopyTo(memoryStream); - imageFactory.Load(memoryStream) - .AddQueryString(queryString) - .Format(ImageUtils.GetImageFormat(imageName)) - .AutoProcess().Save(cache.CachedPath); + imageFactory.Load(memoryStream) + .AddQueryString(queryString) + .Format(ImageUtils.GetImageFormat(imageName)) + .AutoProcess().Save(cache.CachedPath); - // Ensure that the LastWriteTime property of the source and cached file match. - DateTime dateTime = await cache.SetCachedLastWriteTimeAsync(); + // Ensure that the LastWriteTime property of the source and cached file match. + DateTime dateTime = await cache.SetCachedLastWriteTimeAsync(); - // Add to the cache. - await cache.AddImageToCacheAsync(dateTime); + // Add to the cache. + await cache.AddImageToCacheAsync(dateTime); + } } } } } - } - else - { - // Trim the cache. - await cache.TrimCachedFoldersAsync(); + else + { + // Trim the cache. + await cache.TrimCachedFoldersAsync(); - imageFactory.Load(fullPath).AutoProcess().Save(cache.CachedPath); + imageFactory.Load(fullPath).AutoProcess().Save(cache.CachedPath); - // Ensure that the LastWriteTime property of the source and cached file match. - DateTime dateTime = await cache.SetCachedLastWriteTimeAsync(); + // Ensure that the LastWriteTime property of the source and cached file match. + DateTime dateTime = await cache.SetCachedLastWriteTimeAsync(); - // Add to the cache. - await cache.AddImageToCacheAsync(dateTime); + // Add to the cache. + await cache.AddImageToCacheAsync(dateTime); + } } } - } - // Store the response type in the context for later retrieval. - context.Items[CachedResponseTypeKey] = ImageUtils.GetResponseType(fullPath).ToDescription(); + // Store the response type in the context for later retrieval. + context.Items[CachedResponseTypeKey] = ImageUtils.GetResponseType(fullPath).ToDescription(); - // The cached file is valid so just rewrite the path. - context.RewritePath(cache.GetVirtualCachedPath(), false); + // The cached file is valid so just rewrite the path. + context.RewritePath(cache.GetVirtualCachedPath(), false); + } + else + { + throw new HttpException(403, "Access denied"); + } } } diff --git a/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs b/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs index 210cf2a6c..475842401 100644 --- a/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs +++ b/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("2.3.0.1")] -[assembly: AssemblyFileVersion("2.3.0.1")] +[assembly: AssemblyVersion("2.3.0.2")] +[assembly: AssemblyFileVersion("2.3.0.2")] diff --git a/src/ImageProcessor/Helpers/Extensions/StringExtensions.cs b/src/ImageProcessor/Helpers/Extensions/StringExtensions.cs index 47bd57bd4..6b3c1a5be 100644 --- a/src/ImageProcessor/Helpers/Extensions/StringExtensions.cs +++ b/src/ImageProcessor/Helpers/Extensions/StringExtensions.cs @@ -8,9 +8,8 @@ namespace ImageProcessor.Helpers.Extensions { #region Using - using System.Diagnostics.Contracts; + using System; using System.Globalization; - using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; @@ -116,7 +115,10 @@ namespace ImageProcessor.Helpers.Extensions /// An array of integers scraped from the String. public static int[] ToPositiveIntegerArray(this string expression) { - Contract.Requires(!string.IsNullOrWhiteSpace(expression)); + if (string.IsNullOrWhiteSpace(expression)) + { + throw new ArgumentNullException("expression"); + } Regex regex = new Regex(@"\d+", RegexOptions.Compiled); @@ -144,33 +146,9 @@ namespace ImageProcessor.Helpers.Extensions /// True if the given string is a valid virtual path name public static bool IsValidVirtualPathName(this string expression) { - // Check the start of the string. - if (expression.StartsWith("~/")) - { - // Trim the first two characters and test the path. - expression = expression.Substring(2); - return expression.IsValidPathName(); - } - - return false; - } - - /// - /// Checks the string to see whether the value is a valid path name. - /// - /// - /// For an explanation - /// - /// - /// The String instance that this method extends. - /// True if the given string is a valid path name - public static bool IsValidPathName(this string expression) - { - // Create a regex of invalid characters and test it. - string invalidPathNameChars = new string(Path.GetInvalidFileNameChars()); - Regex regFixPathName = new Regex("[" + Regex.Escape(invalidPathNameChars) + "]"); + Uri uri; - return !regFixPathName.IsMatch(expression); + return Uri.TryCreate(expression, UriKind.Relative, out uri) && uri.IsWellFormedOriginalString(); } #endregion } diff --git a/src/ImageProcessor/Imaging/ImageUtils.cs b/src/ImageProcessor/Imaging/ImageUtils.cs index fdfb0ca83..f8e69233c 100644 --- a/src/ImageProcessor/Imaging/ImageUtils.cs +++ b/src/ImageProcessor/Imaging/ImageUtils.cs @@ -17,7 +17,6 @@ namespace ImageProcessor.Imaging using System.IO; using System.Linq; using System.Text.RegularExpressions; - using System.Threading.Tasks; #endregion /// @@ -28,7 +27,7 @@ namespace ImageProcessor.Imaging /// /// The image format regex. /// - private static readonly Regex FormatRegex = new Regex(@"(\.?)(j(pg|peg)|bmp|png|gif|ti(f|ff))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.RightToLeft); + private static readonly Regex FormatRegex = new Regex(@"(\.?)(j(pg|peg)|bmp|png|gif|ti(f|ff))", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.RightToLeft); /// /// Returns the correct response type based on the given request path. @@ -41,25 +40,27 @@ namespace ImageProcessor.Imaging /// public static ResponseType GetResponseType(string request) { - foreach (Match match in FormatRegex.Matches(request)) + Match match = FormatRegex.Matches(request)[0]; + + switch (match.Value.ToUpperInvariant()) { - switch (match.Value.ToUpperInvariant()) - { - case "PNG": - return ResponseType.Png; - case "BMP": - return ResponseType.Bmp; - case "GIF": - return ResponseType.Gif; - case "TIF": - case "TIFF": - return ResponseType.Tiff; - default: - return ResponseType.Jpeg; - } + case "PNG": + case ".PNG": + return ResponseType.Png; + case "BMP": + case ".BMP": + return ResponseType.Bmp; + case "GIF": + case ".GIF": + return ResponseType.Gif; + case "TIF": + case "TIFF": + case ".TIF": + case ".TIFF": + return ResponseType.Tiff; + default: + return ResponseType.Jpeg; } - - return ResponseType.Jpeg; } /// @@ -91,7 +92,7 @@ namespace ImageProcessor.Imaging } } - // TODO: Show custom exception?? + // TODO: Show custom exception? return null; } @@ -115,7 +116,6 @@ namespace ImageProcessor.Imaging case "Png": return ".png"; case "Tif": - return ".tif"; case "Tiff": return ".tif"; default: @@ -197,9 +197,26 @@ namespace ImageProcessor.Imaging /// True the value contains a valid image extension, otherwise false. public static bool IsValidImageExtension(string fileName) { + return FormatRegex.IsMatch(fileName); } + /// + /// Returns the correct file extension for the given string input + /// + /// + /// The string to parse. + /// + /// + /// The correct file extension for the given string input if it can find one; otherwise an empty string. + /// + public static string GetExtension(string input) + { + Match match = FormatRegex.Matches(input)[0]; + + return match.Success ? match.Value : string.Empty; + } + /// Returns a value indicating whether or not the given bitmap is indexed. /// The image to check /// Whether or not the given bitmap is indexed. diff --git a/src/ImageProcessor/Processors/Format.cs b/src/ImageProcessor/Processors/Format.cs index 42efc8bd8..16fc08973 100644 --- a/src/ImageProcessor/Processors/Format.cs +++ b/src/ImageProcessor/Processors/Format.cs @@ -25,7 +25,7 @@ namespace ImageProcessor.Processors /// /// The regular expression to search strings for. /// - private static readonly Regex QueryRegex = new Regex(@"format=(jpeg|png|png8|bmp|gif|tif)", RegexOptions.Compiled); + private static readonly Regex QueryRegex = new Regex(@"format=(j(pg|peg)|png|png8|bmp|gif|tif)", RegexOptions.Compiled); #region IGraphicsProcessor Members /// diff --git a/src/ImageProcessor/Properties/AssemblyInfo.cs b/src/ImageProcessor/Properties/AssemblyInfo.cs index d25387498..68075c37d 100644 --- a/src/ImageProcessor/Properties/AssemblyInfo.cs +++ b/src/ImageProcessor/Properties/AssemblyInfo.cs @@ -32,6 +32,6 @@ using System.Security; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.7.0.0")] -[assembly: AssemblyFileVersion("1.7.0.0")] +[assembly: AssemblyVersion("1.7.0.1")] +[assembly: AssemblyFileVersion("1.7.0.1")] diff --git a/src/Nuget/ImageProcessor.1.6.0.1.nupkg b/src/Nuget/ImageProcessor.1.6.0.1.nupkg deleted file mode 100644 index 9a61f73a96f9d3c0e7b0b875e521f34310c855e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54051 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⪼>imZ(iQD&eo| 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 diff --git a/src/Nuget/ImageProcessor.1.7.0.1.nupkg b/src/Nuget/ImageProcessor.1.7.0.1.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..3d5bdf87647aef8d3b6ee1e9773e567db49879c8 GIT binary patch literal 54281 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 literal 0 HcmV?d00001 diff --git a/src/Nuget/ImageProcessor.Web.2.2.3.3.nupkg.REMOVED.git-id b/src/Nuget/ImageProcessor.Web.2.2.3.3.nupkg.REMOVED.git-id deleted file mode 100644 index 9e9ad0766..000000000 --- a/src/Nuget/ImageProcessor.Web.2.2.3.3.nupkg.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -01e1999a7804bb48ba37f247dfdb1bf01f05fa62 \ No newline at end of file diff --git a/src/Nuget/ImageProcessor.Web.2.3.0.0.nupkg.REMOVED.git-id b/src/Nuget/ImageProcessor.Web.2.3.0.0.nupkg.REMOVED.git-id deleted file mode 100644 index b2911f9c5..000000000 --- a/src/Nuget/ImageProcessor.Web.2.3.0.0.nupkg.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -8b33cb0b4f13802b62d2511239e212680ad67158 \ No newline at end of file diff --git a/src/Nuget/ImageProcessor.Web.2.3.0.2.nupkg.REMOVED.git-id b/src/Nuget/ImageProcessor.Web.2.3.0.2.nupkg.REMOVED.git-id new file mode 100644 index 000000000..10b435c4e --- /dev/null +++ b/src/Nuget/ImageProcessor.Web.2.3.0.2.nupkg.REMOVED.git-id @@ -0,0 +1 @@ +8c5a374f583194706fa94a269f7ab4543dc4ece6 \ No newline at end of file diff --git a/src/Nuget/ImageProcessor.Web.2.3.0.3.nupkg.REMOVED.git-id b/src/Nuget/ImageProcessor.Web.2.3.0.3.nupkg.REMOVED.git-id new file mode 100644 index 000000000..a026a9cf9 --- /dev/null +++ b/src/Nuget/ImageProcessor.Web.2.3.0.3.nupkg.REMOVED.git-id @@ -0,0 +1 @@ +0a367af8c6588fe2be54ef5950820a7f06f7b0f1 \ No newline at end of file diff --git a/src/TestWebsites/NET45/Test_Website_NET45/Web.config b/src/TestWebsites/NET45/Test_Website_NET45/Web.config index 093761644..fb3bbb368 100644 --- a/src/TestWebsites/NET45/Test_Website_NET45/Web.config +++ b/src/TestWebsites/NET45/Test_Website_NET45/Web.config @@ -5,79 +5,80 @@ --> - - -
-
-
- - + + +
+
+
+ + - - - - - - - + + + + + + + - + - + - + - - - - - - - - - - + + + + + + + + + + - - - - + + + - - + - - - - - - - - + + - - - + + + + + + + + - + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +