Skip to content

Commit 831fcc0

Browse files
authored
[Storage] Fixed create container SAS token fail from an access policy without expireTime, and set expireTime (#16271)
* [Storage] Fixed create contaienr SAS token fail from an access policy without expireTime, and set SAS token expireTime [#16266] * Update per review comments
1 parent b3919c1 commit 831fcc0

File tree

5 files changed

+11
-9
lines changed

5 files changed

+11
-9
lines changed

src/Storage/Storage.Management/ChangeLog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
- Additional information about change #1
1919
-->
2020
## Upcoming Release
21+
* Fixed creating container SAS token failed from an access policy without expire time, and set SAS token expire time [#16266]
22+
- `New-AzStorageContainerSASToken`
2123
* Removed parameter -Name from Get-AzRmStorageShare ShareResourceIdParameterSet
2224
- `Get-AzRmStorageShare`
2325
* Supported create or migrate container to enable immutable Storage with versioning.

src/Storage/Storage/Blob/Cmdlet/SetAzureStorageContainerStoredAccessPolicy.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ internal string SetAzureContainerStoredAccessPolicy(IStorageBlobManagement local
119119
}
120120
if (noExpiryTime)
121121
{
122-
signedIdentifier.AccessPolicy.PolicyExpiresOn = DateTimeOffset.MinValue;
122+
signedIdentifier.AccessPolicy.PolicyExpiresOn = null;
123123
}
124124
else if (ExpiryTime != null)
125125
{

src/Storage/Storage/Common/SasTokenHelper.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ public static BlobSasBuilder SetBlobSasBuilder(string containerName,
328328

329329
if (StartTime != null)
330330
{
331-
if (signedIdentifier.AccessPolicy.StartsOn != DateTimeOffset.MinValue)
331+
if (signedIdentifier.AccessPolicy.StartsOn != DateTimeOffset.MinValue && signedIdentifier.AccessPolicy.StartsOn != null)
332332
{
333333
throw new InvalidOperationException(Resources.SignedStartTimeMustBeOmitted);
334334
}
@@ -340,7 +340,7 @@ public static BlobSasBuilder SetBlobSasBuilder(string containerName,
340340

341341
if (ExpiryTime != null)
342342
{
343-
if (signedIdentifier.AccessPolicy.PolicyExpiresOn != DateTimeOffset.MinValue)
343+
if (signedIdentifier.AccessPolicy.PolicyExpiresOn != DateTimeOffset.MinValue && signedIdentifier.AccessPolicy.PolicyExpiresOn != null)
344344
{
345345
throw new ArgumentException(Resources.SignedExpiryTimeMustBeOmitted);
346346
}
@@ -349,9 +349,9 @@ public static BlobSasBuilder SetBlobSasBuilder(string containerName,
349349
sasBuilder.ExpiresOn = ExpiryTime.Value.ToUniversalTime();
350350
}
351351
}
352-
else if (signedIdentifier.AccessPolicy.PolicyExpiresOn == DateTimeOffset.MinValue)
352+
else if (signedIdentifier.AccessPolicy.PolicyExpiresOn == DateTimeOffset.MinValue && signedIdentifier.AccessPolicy.PolicyExpiresOn != null)
353353
{
354-
if (sasBuilder.StartsOn != DateTimeOffset.MinValue)
354+
if (sasBuilder.StartsOn != DateTimeOffset.MinValue && sasBuilder.StartsOn != null)
355355
{
356356
sasBuilder.ExpiresOn = sasBuilder.StartsOn.ToUniversalTime().AddHours(1);
357357
}
@@ -480,7 +480,7 @@ public static string GetBlobSharedAccessSignature(AzureStorageContext context, B
480480
Util.ValidateUserDelegationKeyStartEndTime(sasBuilder.StartsOn, sasBuilder.ExpiresOn);
481481

482482
userDelegationKey = oauthService.GetUserDelegationKey(
483-
startsOn: sasBuilder.StartsOn == DateTimeOffset.MinValue ? DateTimeOffset.UtcNow : sasBuilder.StartsOn.ToUniversalTime(),
483+
startsOn: sasBuilder.StartsOn == DateTimeOffset.MinValue || sasBuilder.StartsOn == null ? DateTimeOffset.UtcNow : sasBuilder.StartsOn.ToUniversalTime(),
484484
expiresOn: sasBuilder.ExpiresOn.ToUniversalTime(),
485485
cancellationToken: cancelToken);
486486

@@ -518,7 +518,7 @@ public static AccountSasBuilder SetAccountSasBuilder(SharedAccessAccountServices
518518
}
519519
else
520520
{
521-
if (sasBuilder.StartsOn != DateTimeOffset.MinValue)
521+
if (sasBuilder.StartsOn != DateTimeOffset.MinValue && sasBuilder.StartsOn != null)
522522
{
523523
sasBuilder.ExpiresOn = sasBuilder.StartsOn.AddHours(1).ToUniversalTime();
524524
}

src/Storage/Storage/Common/StorageExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ private static string GetBlobSasToken(BlobBaseClient blob, AzureStorageContext c
287287
Util.ValidateUserDelegationKeyStartEndTime(sasBuilder.StartsOn, sasBuilder.ExpiresOn);
288288

289289
userDelegationKey = oauthService.GetUserDelegationKey(
290-
startsOn: sasBuilder.StartsOn == DateTimeOffset.MinValue ? DateTimeOffset.UtcNow : sasBuilder.StartsOn.ToUniversalTime(),
290+
startsOn: sasBuilder.StartsOn == DateTimeOffset.MinValue || sasBuilder.StartsOn == null? DateTimeOffset.UtcNow : sasBuilder.StartsOn.ToUniversalTime(),
291291
expiresOn: sasBuilder.ExpiresOn.ToUniversalTime());
292292

293293
sasToken = sasBuilder.ToSasQueryParameters(userDelegationKey, context.StorageAccountName).ToString();

src/Storage/Storage/Common/Util.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ public static void ValidateUserDelegationKeyStartEndTime(DateTimeOffset userDele
515515
{
516516
throw new ArgumentException(string.Format("Expiry time {0} is earlier than now.", userDelegationKeyEndTime.ToString()));
517517
}
518-
else if (userDelegationKeyStartTime >= userDelegationKeyEndTime)
518+
else if (userDelegationKeyStartTime != null && userDelegationKeyStartTime >= userDelegationKeyEndTime)
519519
{
520520
throw new ArgumentException(string.Format("Start time {0} is later than expiry time {1}.", userDelegationKeyStartTime.ToString(), userDelegationKeyEndTime.ToString()));
521521
}

0 commit comments

Comments
 (0)