public void NewBlobSasWithNotExistBlob() { string containerName = Utility.GenNameString("container"); string blobName = Utility.GenNameString("blob"); CommandAgent.GetBlobSasFromCmd(containerName, blobName, string.Empty, string.Empty); }
public void NewBlobSasWithPolicy() { blobUtil.SetupTestContainerAndBlob(); try { TimeSpan sasLifeTime = TimeSpan.FromMinutes(10); BlobContainerPermissions permission = new BlobContainerPermissions(); string policyName = Utility.GenNameString("saspolicy"); permission.SharedAccessPolicies.Add(policyName, new SharedAccessBlobPolicy { Permissions = SharedAccessBlobPermissions.Read, SharedAccessExpiryTime = DateTimeOffset.UtcNow.Add(sasLifeTime) }); blobUtil.Container.SetPermissions(permission); string sasToken = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, policyName, string.Empty); Test.Info("Sleep and wait for sas policy taking effect"); double lifeTime = 1; Thread.Sleep(TimeSpan.FromMinutes(lifeTime)); ValidateSasToken(blobUtil.Blob, "r", sasToken); } finally { blobUtil.CleanupTestContainerAndBlob(); } }
public void NewBlobSasWithLifeTime() { blobUtil.SetupTestContainerAndBlob(); double waitEffectTime = 1; double lifeTime = 5; //Minutes const double deltaTime = 0.5; DateTime startTime = DateTime.Now.AddMinutes(waitEffectTime); DateTime expiryTime = startTime.AddMinutes(lifeTime); try { string blobPermission = Utility.GenRandomCombination(Utility.BlobPermission); string sastoken = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, string.Empty, blobPermission, startTime, expiryTime); try { ValidateSasToken(blobUtil.Blob, blobPermission, sastoken); Test.Error(string.Format("Access Blob should fail since the start time is {0}, but now is {1}", startTime.ToUniversalTime().ToString(), DateTime.UtcNow.ToString())); } catch (StorageException e) { Test.Info(e.Message); ExpectEqual(e.RequestInformation.HttpStatusCode, 403, "(403) Forbidden"); } Test.Info("Sleep and wait for the sas token start time"); Thread.Sleep(TimeSpan.FromMinutes(waitEffectTime + deltaTime)); ValidateSasToken(blobUtil.Blob, blobPermission, sastoken); Test.Info("Sleep and wait for sas token expiry time"); Thread.Sleep(TimeSpan.FromMinutes(lifeTime + deltaTime)); try { if (!blobPermission.Contains('d')) { // if there is 'd' in Permission, the blob does not exist, we should skip this ValidateSasToken(blobUtil.Blob, blobPermission, sastoken); Test.Error(string.Format("Access Blob should fail since the expiry time is {0}, but now is {1}", expiryTime.ToUniversalTime().ToString(), DateTime.UtcNow.ToString())); } } catch (StorageException e) { Test.Info(e.Message); Test.Assert(403 == e.RequestInformation.HttpStatusCode || 306 == e.RequestInformation.HttpStatusCode, string.Format("HttpStatusCode should be 403 or 306, and actually it's {0}", e.RequestInformation.HttpStatusCode)); } } finally { blobUtil.CleanupTestContainerAndBlob(); } }
/// <summary> /// Generate a sas token and validate it. /// </summary> /// <param name="blobPermission">Blob permission</param> internal void GenerateSasTokenAndValidate(string blobPermission) { blobUtil.SetupTestContainerAndBlob(); try { string sastoken = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, string.Empty, blobPermission); ValidateSasToken(blobUtil.Blob, blobPermission, sastoken); } finally { blobUtil.CleanupTestContainerAndBlob(); } }
public void NewBlobSas_IncludeIPRange() { blobUtil.SetupTestContainerAndBlob(); try { string sastoken = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, string.Empty, "rwd", null, null, false, null, "0.0.0.0-255.255.255.255"); blobUtil.ValidateBlobWriteableWithSasToken(blobUtil.Blob, sastoken); } finally { blobUtil.CleanupTestContainerAndBlob(); } }
public void NewBlobSasWithLimitedPermission() { blobUtil.SetupTestContainerAndBlob(); try { //Blob read permission string blobPermission = "r"; string limitedPermission = lang == Language.PowerShell ? "wdac" : "wd"; string sastoken = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, string.Empty, blobPermission); ValidateLimitedSasPermission(blobUtil.Blob, limitedPermission, sastoken); //Blob write permission blobPermission = "w"; limitedPermission = "rd"; sastoken = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, string.Empty, blobPermission); ValidateLimitedSasPermission(blobUtil.Blob, limitedPermission, sastoken); //Blob delete permission blobPermission = "d"; limitedPermission = lang == Language.PowerShell ? "rwac" : "rw"; sastoken = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, string.Empty, blobPermission); ValidateLimitedSasPermission(blobUtil.Blob, limitedPermission, sastoken); if (lang == Language.PowerShell) { //Blob add permission blobPermission = "a"; limitedPermission = "rdwc"; sastoken = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, string.Empty, blobPermission); ValidateLimitedSasPermission(blobUtil.Blob, limitedPermission, sastoken); //Blob create permission blobPermission = "c"; limitedPermission = "rdwa"; sastoken = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, string.Empty, blobPermission); ValidateLimitedSasPermission(blobUtil.Blob, limitedPermission, sastoken); } //Blob none permission //blobPermission = ""; //limitedPermission = "rwd"; //sastoken = agent.GetBlobSasFromPsCmd(blobUtil.Blob, string.Empty, blobPermission); //ValidateLimitedSasPermission(blobUtil.Blob, limitedPermission, sastoken); } finally { blobUtil.CleanupTestContainerAndBlob(); } }
public void NewBlobSas_HttpsOrHttp() { blobUtil.SetupTestContainerAndBlob(); try { string fullUri = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, string.Empty, "rwd", null, null, true, SharedAccessProtocol.HttpsOrHttp); string sasToken = (lang == Language.PowerShell ? fullUri.Substring(fullUri.IndexOf("?")) : fullUri); blobUtil.ValidateBlobReadableWithSasToken(blobUtil.Blob, sasToken, useHttps: false); } finally { blobUtil.CleanupTestContainerAndBlob(); } }
public void NewBlobSasWithFullUri() { blobUtil.SetupTestContainerAndBlob(); try { string blobPermission = Utility.GenRandomCombination(Utility.BlobPermission); string fullUri = CommandAgent.GetBlobSasFromCmd(blobUtil.Blob, string.Empty, blobPermission); string sasToken = (lang == Language.PowerShell ? fullUri.Substring(fullUri.IndexOf("?")) : fullUri); ValidateSasToken(blobUtil.Blob, blobPermission, sasToken); } finally { blobUtil.CleanupTestContainerAndBlob(); } }
public void NewBlobSasWithSpecialCharacters() { blobUtil.SetupTestContainerAndBlob(); string specialBlobName = Utility.GenNameString(TestBase.SpecialChars); try { CloudBlob blob = blobUtil.CreateRandomBlob(blobUtil.Container, specialBlobName); string permisson = "r"; string fullUri = CommandAgent.GetBlobSasFromCmd(blob, string.Empty, permisson, null, null, true); string sasToken = (lang == Language.PowerShell ? fullUri.Substring(fullUri.IndexOf("?")) : fullUri); blobUtil.ValidateBlobReadableWithSasToken(blob, sasToken); } finally { blobUtil.CleanupTestContainerAndBlob(); } }