@@ -361,7 +361,9 @@ public async void TestRequestSigning()
361
361
{
362
362
const string key = "test key" ;
363
363
using ( var contentRoot = new TempContentRoot ( )
364
- . AddResource ( "images/fire umbrella.jpg" , "TestFiles.fire-umbrella-small.jpg" ) )
364
+ . AddResource ( "images/fire umbrella.jpg" , "TestFiles.fire-umbrella-small.jpg" )
365
+ . AddResource ( "images/query/umbrella.jpg" , "TestFiles.fire-umbrella-small.jpg" )
366
+ . AddResource ( "images/never/umbrella.jpg" , "TestFiles.fire-umbrella-small.jpg" ) )
365
367
{
366
368
367
369
var hostBuilder = new HostBuilder ( )
@@ -375,8 +377,13 @@ public async void TestRequestSigning()
375
377
. SetMapWebRoot ( false )
376
378
// Maps / to ContentRootPath/images
377
379
. MapPath ( "/" , Path . Combine ( contentRoot . PhysicalPath , "images" ) )
378
- . SetRequireRequestSignature ( true )
379
- . AddRequestSigningKey ( key )
380
+ . SetRequestSignatureOptions (
381
+ new RequestSignatureOptions ( SignatureRequired . ForAllRequests ,
382
+ new [ ] { key } )
383
+ . ForPrefix ( "/query/" , StringComparison . Ordinal ,
384
+ SignatureRequired . ForQuerystringRequests , new [ ] { key } )
385
+ . ForPrefix ( "/never/" , StringComparison . Ordinal , SignatureRequired . Never ,
386
+ new string [ ] { } ) )
380
387
) ;
381
388
} ) ;
382
389
} ) ;
@@ -394,11 +401,21 @@ public async void TestRequestSigning()
394
401
using var signedEncodedUnmodifiedResponse = await client . GetAsync ( signedEncodedUnmodifiedUrl ) ;
395
402
signedEncodedUnmodifiedResponse . EnsureSuccessStatusCode ( ) ;
396
403
397
- // var unsignedUnmodifiedUrl = "/fire%20umbrella.jpg";
398
- // using var unsignedUnmodifiedResponse = await client.GetAsync(unsignedUnmodifiedUrl);
399
- // unsignedUnmodifiedResponse.EnsureSuccessStatusCode();
400
- //
401
- //
404
+ var unsignedUnmodifiedUrl = "/query/umbrella.jpg" ;
405
+ using var unsignedUnmodifiedResponse = await client . GetAsync ( unsignedUnmodifiedUrl ) ;
406
+ unsignedUnmodifiedResponse . EnsureSuccessStatusCode ( ) ;
407
+
408
+ using var unsignedResponse2 = await client . GetAsync ( "/query/umbrella.jpg?width=1" ) ;
409
+ Assert . Equal ( HttpStatusCode . Forbidden , unsignedResponse2 . StatusCode ) ;
410
+
411
+ var unsignedUnmodifiedUrl2 = "/never/umbrella.jpg" ;
412
+ using var unsignedUnmodifiedResponse2 = await client . GetAsync ( unsignedUnmodifiedUrl2 ) ;
413
+ unsignedUnmodifiedResponse2 . EnsureSuccessStatusCode ( ) ;
414
+
415
+ var unsignedModifiedUrl = "/never/umbrella.jpg?width=1" ;
416
+ using var unsignedModifiedResponse = await client . GetAsync ( unsignedModifiedUrl ) ;
417
+ unsignedModifiedResponse . EnsureSuccessStatusCode ( ) ;
418
+
402
419
var signedEncodedUrl = Imazen . Common . Helpers . Signatures . SignRequest ( "/fire%20umbrella.jpg?width=1" , key ) ;
403
420
using var signedEncodedResponse = await client . GetAsync ( signedEncodedUrl ) ;
404
421
signedEncodedResponse . EnsureSuccessStatusCode ( ) ;
0 commit comments