Skip to content

Commit eafb9b7

Browse files
committed
ImageWizardOptions: Use key property as byte array
1 parent d67b434 commit eafb9b7

File tree

7 files changed

+15
-48
lines changed

7 files changed

+15
-48
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ services.AddImageWizard();
8383
8484
services.AddImageWizard(options =>
8585
{
86-
options.AllowUnsafeUrl = true;
87-
options.AllowedDPR = new[] { 1.0, 1.5, 2.0, 3.0, 4.0 };
88-
options.Key = "DEMO-KEY..."; //64 byte key encoded in Base64Url
86+
options.AllowUnsafeUrl = true;
87+
options.AllowedDPR = new double[] { 1.0, 1.5, 2.0, 3.0, 4.0 };
88+
options.Key = new byte[64] { .. };
8989
options.UseETag = true;
9090
options.CacheControl.IsEnabled = true;
9191
options.CacheControl.MaxAge = TimeSpan.FromDays(365);
@@ -507,7 +507,7 @@ static:
507507
volumes:
508508
- file_cache:/data
509509
environment:
510-
- General__Key=DEMO-KEY---PLEASE-CHANGE-THIS-KEY---PLEASE-CHANGE-THIS-KEY---PLEASE-CHANGE-THIS-KEY---==
510+
- General__Key=DEMO+KEY+++PLEASE+CHANGE+THIS+KEY+++PLEASE+CHANGE+THIS+KEY+++PLEASE+CHANGE+THIS+KEY+++==
511511
- General__AllowUnsafeUrl=false
512512
- General__UseAcceptHeader=false
513513
- General__UseETag=true

src/ImageWizard.Client/Builder/UrlBuilderContext.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public string BuildUrl()
6767

6868
if (ImageUrlBuilder.Settings.UseUnsafeUrl == false)
6969
{
70-
signature = signatureService.Encrypt(ImageUrlBuilder.Settings.KeyInBytes, new ImageWizardRequest(url, new HostString(ImageUrlBuilder.Settings.Host)));
70+
signature = signatureService.Encrypt(ImageUrlBuilder.Settings.Key, new ImageWizardRequest(url, new HostString(ImageUrlBuilder.Settings.Host)));
7171
}
7272

7373
return $"{ImageUrlBuilder.Settings.BaseUrl.TrimEnd('/')}/{signature}/{url.Path}";

src/ImageWizard.Core/Middlewares/ImageWizardApi.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public async Task ExecuteAsync(
9191
else
9292
{
9393
//check signature
94-
string validSignature = signatureService.Encrypt(options.Value.KeyInBytes, new ImageWizardRequest(url, context.Request.Host));
94+
string validSignature = signatureService.Encrypt(options.Value.Key, new ImageWizardRequest(url, context.Request.Host));
9595

9696
if (signature == validSignature)
9797
{

src/ImageWizard.Core/Middlewares/ImageWizardOptions.cs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ public ImageWizardOptions()
2828
UseAcceptHeader = false;
2929
RefreshLastAccessInterval = TimeSpan.FromDays(1);
3030

31-
Key = string.Empty;
32-
3331
AllowedDPR = ImageWizardDefaults.AllowedDPR;
3432

3533
CacheControl = new CacheControl();
@@ -74,16 +72,4 @@ public ImageWizardOptions()
7472
/// FallbackHandler
7573
/// </summary>
7674
public FallbackHandler? FallbackHandler { get; set; }
77-
78-
/// <summary>
79-
/// Generates random 64 byte key.
80-
/// </summary>
81-
public void GenerateRandomKey()
82-
{
83-
//generate random key
84-
byte[] keyBuffer = new byte[64];
85-
RandomNumberGenerator.Create().GetBytes(keyBuffer);
86-
87-
Key = WebEncoders.Base64UrlEncode(keyBuffer);
88-
}
8975
}

src/ImageWizard.TestApp/Startup.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ public Startup(IConfiguration configuration)
3636
// This method gets called by the runtime. Use this method to add services to the container.
3737
public void ConfigureServices(IServiceCollection services)
3838
{
39-
//generate random key
40-
byte[] keyBuffer = RandomNumberGenerator.GetBytes(64);
39+
services.Configure<ImageWizardOptions>(Configuration.GetSection("General"));
4140

42-
string key = WebEncoders.Base64UrlEncode(keyBuffer);
41+
//generate random key
42+
byte[] key = RandomNumberGenerator.GetBytes(64);
4343

4444
services.AddImageWizard(x =>
4545
{

src/ImageWizard.TestApp/appsettings.Development.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,8 @@
55
"System": "Information",
66
"Microsoft": "Information"
77
}
8+
},
9+
"General": {
10+
"Key": "DEMO+KEY+++PLEASE+CHANGE+THIS+KEY+++PLEASE+CHANGE+THIS+KEY+++PLEASE+CHANGE+THIS+KEY+++=="
811
}
912
}

src/ImageWizard.Utils/ImageWizardBaseOptions.cs

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,11 @@ public abstract class ImageWizardBaseOptions
1515
{
1616
public ImageWizardBaseOptions()
1717
{
18-
_key = string.Empty;
19-
_keyDecoded = Array.Empty<byte>();
20-
}
21-
22-
private string _key;
23-
private byte[] _keyDecoded;
24-
25-
/// <summary>
26-
/// Key encoded in Base64Url
27-
/// </summary>
28-
public string Key
29-
{
30-
get => _key;
31-
set
32-
{
33-
if (_key != value)
34-
{
35-
_key = value;
36-
37-
_keyDecoded = WebEncoders.Base64UrlDecode(_key);
38-
}
39-
}
18+
Key = Array.Empty<byte>();
4019
}
4120

4221
/// <summary>
43-
/// GetKeyInBytes
22+
/// Key
4423
/// </summary>
45-
/// <returns></returns>
46-
public byte[] KeyInBytes => _keyDecoded;
24+
public byte[] Key { get; set; }
4725
}

0 commit comments

Comments
 (0)