Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make storage mock clients able to generate sas #17349

Merged
merged 1 commit into from
Dec 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions sdk/storage/Azure.Storage.Blobs/src/BlobBaseClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ public virtual string Name
/// Determines whether the client is able to generate a SAS.
/// If the client is authenticated with a <see cref="StorageSharedKeyCredential"/>.
/// </summary>
public bool CanGenerateSasUri => _storageSharedKeyCredential != null;
public bool CanGenerateSasUri => SharedKeyCredential != null;

#region ctors
/// <summary>
Expand Down Expand Up @@ -470,7 +470,7 @@ protected virtual BlobBaseClient WithSnapshotCore(string snapshot)
return new BlobBaseClient(
blobUriBuilder.ToUri(),
Pipeline,
_storageSharedKeyCredential,
SharedKeyCredential,
Version,
ClientDiagnostics,
CustomerProvidedKey,
Expand Down Expand Up @@ -510,7 +510,7 @@ private protected virtual BlobBaseClient WithVersionCore(string versionId)
return new BlobBaseClient(
blobUriBuilder.ToUri(),
Pipeline,
_storageSharedKeyCredential,
SharedKeyCredential,
Version,
ClientDiagnostics,
CustomerProvidedKey,
Expand Down Expand Up @@ -4265,7 +4265,7 @@ public virtual Uri GenerateSasUri(BlobSasBuilder builder)
}
BlobUriBuilder sasUri = new BlobUriBuilder(Uri)
{
Query = builder.ToSasQueryParameters(_storageSharedKeyCredential).ToString()
Query = builder.ToSasQueryParameters(SharedKeyCredential).ToString()
};
return sasUri.ToUri();
}
Expand Down Expand Up @@ -4297,7 +4297,7 @@ protected internal virtual BlobContainerClient GetParentBlobContainerClientCore(
_parentBlobContainerClient = new BlobContainerClient(
blobUriBuilder.ToUri(),
Pipeline,
_storageSharedKeyCredential,
SharedKeyCredential,
Version,
ClientDiagnostics,
CustomerProvidedKey,
Expand Down
21 changes: 13 additions & 8 deletions sdk/storage/Azure.Storage.Blobs/src/BlobContainerClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -155,11 +155,16 @@ public virtual string Name
/// </summary>
private readonly StorageSharedKeyCredential _storageSharedKeyCredential;

/// <summary>
/// Gets the The <see cref="StorageSharedKeyCredential"/> used to authenticate and generate SAS.
/// </summary>
internal virtual StorageSharedKeyCredential SharedKeyCredential => _storageSharedKeyCredential;

/// <summary>
/// Determines whether the client is able to generate a SAS.
/// If the client is authenticated with a <see cref="StorageSharedKeyCredential"/>.
/// </summary>
public bool CanGenerateSasUri => _storageSharedKeyCredential != null;
public bool CanGenerateSasUri => SharedKeyCredential != null;

#region ctor
/// <summary>
Expand Down Expand Up @@ -420,7 +425,7 @@ protected internal virtual BlobBaseClient GetBlobBaseClientCore(string blobName)
return new BlobBaseClient(
blobUriBuilder.ToUri(),
_pipeline,
_storageSharedKeyCredential,
SharedKeyCredential,
Version,
ClientDiagnostics,
CustomerProvidedKey,
Expand All @@ -446,7 +451,7 @@ public virtual BlobClient GetBlobClient(string blobName)
return new BlobClient(
blobUriBuilder.ToUri(),
_pipeline,
_storageSharedKeyCredential,
SharedKeyCredential,
Version,
ClientDiagnostics,
CustomerProvidedKey,
Expand Down Expand Up @@ -479,7 +484,7 @@ protected internal virtual BlockBlobClient GetBlockBlobClientCore(string blobNam
return new BlockBlobClient(
blobUriBuilder.ToUri(),
Pipeline,
_storageSharedKeyCredential,
SharedKeyCredential,
Version,
ClientDiagnostics,
CustomerProvidedKey,
Expand Down Expand Up @@ -511,7 +516,7 @@ protected internal virtual AppendBlobClient GetAppendBlobClientCore(string blobN
return new AppendBlobClient(
blobUriBuilder.ToUri(),
Pipeline,
_storageSharedKeyCredential,
SharedKeyCredential,
Version,
ClientDiagnostics,
CustomerProvidedKey,
Expand Down Expand Up @@ -543,7 +548,7 @@ protected internal virtual PageBlobClient GetPageBlobClientCore(string blobName)
return new PageBlobClient(
blobUriBuilder.ToUri(),
Pipeline,
_storageSharedKeyCredential,
SharedKeyCredential,
Version,
ClientDiagnostics,
CustomerProvidedKey,
Expand Down Expand Up @@ -3000,7 +3005,7 @@ public virtual Uri GenerateSasUri(BlobSasBuilder builder)
}
BlobUriBuilder sasUri = new BlobUriBuilder(Uri)
{
Query = builder.ToSasQueryParameters(_storageSharedKeyCredential).ToString()
Query = builder.ToSasQueryParameters(SharedKeyCredential).ToString()
};
return sasUri.ToUri();
}
Expand Down Expand Up @@ -3039,7 +3044,7 @@ protected internal virtual BlobServiceClient GetParentBlobServiceClientCore()
ClientSideEncryption,
EncryptionScope,
Pipeline,
_storageSharedKeyCredential);
SharedKeyCredential);
}

return _parentBlobServiceClient;
Expand Down
11 changes: 8 additions & 3 deletions sdk/storage/Azure.Storage.Blobs/src/BlobServiceClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,13 +130,18 @@ public string AccountName
/// <summary>
/// The <see cref="StorageSharedKeyCredential"/> used to authenticate and generate SAS
/// </summary>
private StorageSharedKeyCredential _storageSharedKeyCredential;
private readonly StorageSharedKeyCredential _storageSharedKeyCredential;

/// <summary>
/// Gets the The <see cref="StorageSharedKeyCredential"/> used to authenticate and generate SAS.
/// </summary>
internal virtual StorageSharedKeyCredential SharedKeyCredential => _storageSharedKeyCredential;

/// <summary>
/// Determines whether the client is able to generate a SAS.
/// If the client is authenticated with a <see cref="StorageSharedKeyCredential"/>.
/// </summary>
public bool CanGenerateAccountSasUri => _storageSharedKeyCredential != null;
public bool CanGenerateAccountSasUri => SharedKeyCredential != null;

#region ctors
/// <summary>
Expand Down Expand Up @@ -1859,7 +1864,7 @@ public Uri GenerateAccountSasUri(AccountSasBuilder builder)
nameof(AccountSasServices.Blobs));
}
UriBuilder sasUri = new UriBuilder(Uri);
sasUri.Query = builder.ToSasQueryParameters(_storageSharedKeyCredential).ToString();
sasUri.Query = builder.ToSasQueryParameters(SharedKeyCredential).ToString();
return sasUri.Uri;
}
#endregion
Expand Down
80 changes: 40 additions & 40 deletions sdk/storage/Azure.Storage.Blobs/tests/BlobBaseClientTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5734,39 +5734,39 @@ public void CanGenerateSas_ClientConstructors()
string connectionString = storageConnectionString.ToString(true);

// Act - BlobBaseClient(string connectionString, string blobContainerName, string blobName)
BlobBaseClient blob = new BlobBaseClient(
BlobBaseClient blob = InstrumentClient(new BlobBaseClient(
connectionString,
GetNewContainerName(),
GetNewBlobName());
GetNewBlobName()));
Assert.IsTrue(blob.CanGenerateSasUri);

// Act - BlobBaseClient(string connectionString, string blobContainerName, string blobName, BlobClientOptions options)
BlobBaseClient blob2 = new BlobBaseClient(
BlobBaseClient blob2 = InstrumentClient(new BlobBaseClient(
connectionString,
GetNewContainerName(),
GetNewBlobName(),
GetOptions());
GetOptions()));
Assert.IsTrue(blob2.CanGenerateSasUri);

// Act - BlobBaseClient(Uri blobContainerUri, BlobClientOptions options = default)
BlobBaseClient blob3 = new BlobBaseClient(
BlobBaseClient blob3 = InstrumentClient(new BlobBaseClient(
blobEndpoint,
GetOptions());
GetOptions()));
Assert.IsFalse(blob3.CanGenerateSasUri);

// Act - BlobBaseClient(Uri blobContainerUri, StorageSharedKeyCredential credential, BlobClientOptions options = default)
BlobBaseClient blob4 = new BlobBaseClient(
BlobBaseClient blob4 = InstrumentClient(new BlobBaseClient(
blobEndpoint,
constants.Sas.SharedKeyCredential,
GetOptions());
GetOptions()));
Assert.IsTrue(blob4.CanGenerateSasUri);

// Act - BlobBaseClient(Uri blobContainerUri, TokenCredential credential, BlobClientOptions options = default)
var tokenCredentials = new DefaultAzureCredential();
BlobBaseClient blob5 = new BlobBaseClient(
BlobBaseClient blob5 = InstrumentClient(new BlobBaseClient(
blobEndpoint,
tokenCredentials,
GetOptions());
GetOptions()));
Assert.IsFalse(blob5.CanGenerateSasUri);
}

Expand All @@ -5781,43 +5781,43 @@ public void CanGenerateSas_GetParentBlobContainerClient()
string connectionString = storageConnectionString.ToString(true);

// Act - BlobBaseClient(string connectionString, string blobContainerName, string blobName)
BlobBaseClient blob = new BlobBaseClient(
BlobBaseClient blob = InstrumentClient(new BlobBaseClient(
connectionString,
GetNewContainerName(),
GetNewBlobName());
GetNewBlobName()));
BlobContainerClient container = blob.GetParentBlobContainerClient();
Assert.IsTrue(container.CanGenerateSasUri);

// Act - BlobBaseClient(string connectionString, string blobContainerName, string blobName, BlobClientOptions options)
BlobBaseClient blob2 = new BlobBaseClient(
BlobBaseClient blob2 = InstrumentClient(new BlobBaseClient(
connectionString,
GetNewContainerName(),
GetNewBlobName(),
GetOptions());
GetOptions()));
BlobContainerClient container2 = blob2.GetParentBlobContainerClient();
Assert.IsTrue(container2.CanGenerateSasUri);

// Act - BlobBaseClient(Uri blobContainerUri, BlobClientOptions options = default)
BlobBaseClient blob3 = new BlobBaseClient(
BlobBaseClient blob3 = InstrumentClient(new BlobBaseClient(
blobEndpoint,
GetOptions());
GetOptions()));
BlobContainerClient container3 = blob3.GetParentBlobContainerClient();
Assert.IsFalse(container3.CanGenerateSasUri);

// Act - BlobBaseClient(Uri blobContainerUri, StorageSharedKeyCredential credential, BlobClientOptions options = default)
BlobBaseClient blob4 = new BlobBaseClient(
BlobBaseClient blob4 = InstrumentClient(new BlobBaseClient(
blobEndpoint,
constants.Sas.SharedKeyCredential,
GetOptions());
GetOptions()));
BlobContainerClient container4 = blob4.GetParentBlobContainerClient();
Assert.IsTrue(container4.CanGenerateSasUri);

// Act - BlobBaseClient(Uri blobContainerUri, TokenCredential credential, BlobClientOptions options = default)
var tokenCredentials = new DefaultAzureCredential();
BlobBaseClient blob5 = new BlobBaseClient(
BlobBaseClient blob5 = InstrumentClient(new BlobBaseClient(
blobEndpoint,
tokenCredentials,
GetOptions());
GetOptions()));
BlobContainerClient container5 = blob5.GetParentBlobContainerClient();
Assert.IsFalse(container5.CanGenerateSasUri);
}
Expand All @@ -5833,10 +5833,10 @@ public void CanGenerateSas_WithSnapshot_True()
string connectionString = storageConnectionString.ToString(true);

// Create blob
BlobBaseClient blob = new BlobBaseClient(
BlobBaseClient blob = InstrumentClient(new BlobBaseClient(
connectionString,
GetNewContainerName(),
GetNewBlobName());
GetNewBlobName()));
Assert.IsTrue(blob.CanGenerateSasUri);

// Act
Expand All @@ -5855,9 +5855,9 @@ public void CanGenerateSas_WithSnapshot_False()
var blobEndpoint = new Uri("https://127.0.0.1/" + constants.Sas.Account);

// Create blob
BlobBaseClient blob = new BlobBaseClient(
BlobBaseClient blob = InstrumentClient(new BlobBaseClient(
blobEndpoint,
GetOptions());
GetOptions()));
Assert.IsFalse(blob.CanGenerateSasUri);

// Act
Expand All @@ -5879,10 +5879,10 @@ public void CanGenerateSas_WithVersion_True()
string connectionString = storageConnectionString.ToString(true);

// Create blob
BlobBaseClient blob = new BlobBaseClient(
BlobBaseClient blob = InstrumentClient(new BlobBaseClient(
connectionString,
GetNewContainerName(),
GetNewBlobName());
GetNewBlobName()));
Assert.IsTrue(blob.CanGenerateSasUri);

// Act
Expand All @@ -5901,9 +5901,9 @@ public void CanGenerateSas_WithVersion_False()
var blobEndpoint = new Uri("https://127.0.0.1/" + constants.Sas.Account);

// Create blob
BlobBaseClient blob = new BlobBaseClient(
BlobBaseClient blob = InstrumentClient(new BlobBaseClient(
blobEndpoint,
GetOptions());
GetOptions()));
Assert.IsFalse(blob.CanGenerateSasUri);

// Act
Expand All @@ -5927,11 +5927,11 @@ public void GenerateSas_RequiredParameters()
string blobName = GetNewBlobName();
BlobSasPermissions permissions = BlobSasPermissions.Read;
DateTimeOffset expiresOn = Recording.UtcNow.AddHours(+1);
BlobBaseClient blobClient = new BlobBaseClient(
BlobBaseClient blobClient = InstrumentClient(new BlobBaseClient(
connectionString,
containerName,
blobName,
GetOptions());
GetOptions()));

//Act
Uri sasUri = blobClient.GenerateSasUri(permissions, expiresOn);
Expand Down Expand Up @@ -5964,11 +5964,11 @@ public void GenerateSas_Builder()
BlobSasPermissions permissions = BlobSasPermissions.Read;
DateTimeOffset expiresOn = Recording.UtcNow.AddHours(+1);
DateTimeOffset startsOn = Recording.UtcNow.AddHours(-1);
BlobBaseClient blobClient = new BlobBaseClient(
BlobBaseClient blobClient = InstrumentClient(new BlobBaseClient(
connectionString,
containerName,
blobName,
GetOptions());
GetOptions()));

BlobSasBuilder sasBuilder = new BlobSasBuilder(permissions, expiresOn)
{
Expand Down Expand Up @@ -6007,10 +6007,10 @@ public void GenerateSas_BuilderWrongContainerName()
blobUriBuilder.Path += constants.Sas.Account + "/" + GetNewContainerName() + "/" + blobName;
BlobSasPermissions permissions = BlobSasPermissions.Read;
DateTimeOffset expiresOn = Recording.UtcNow.AddHours(+1);
BlobBaseClient blobClient = new BlobBaseClient(
BlobBaseClient blobClient = InstrumentClient(new BlobBaseClient(
blobUriBuilder.Uri,
constants.Sas.SharedKeyCredential,
GetOptions());
GetOptions()));

BlobSasBuilder sasBuilder = new BlobSasBuilder(permissions, expiresOn)
{
Expand Down Expand Up @@ -6044,10 +6044,10 @@ public void GenerateSas_BuilderWrongBlobName()
blobUriBuilder.Path += constants.Sas.Account + "/" + containerName + "/" + GetNewBlobName();
BlobSasPermissions permissions = BlobSasPermissions.Read;
DateTimeOffset expiresOn = Recording.UtcNow.AddHours(+1);
BlobBaseClient blobClient = new BlobBaseClient(
BlobBaseClient blobClient = InstrumentClient(new BlobBaseClient(
blobUriBuilder.Uri,
constants.Sas.SharedKeyCredential,
GetOptions());
GetOptions()));

BlobSasBuilder sasBuilder = new BlobSasBuilder(permissions, expiresOn)
{
Expand Down Expand Up @@ -6084,10 +6084,10 @@ public void GenerateSas_BuilderWrongSnapshot()
blobUriBuilder.Path += constants.Sas.Account + "/" + containerName + "/" + blobName;
BlobSasPermissions permissions = BlobSasPermissions.Read;
DateTimeOffset expiresOn = Recording.UtcNow.AddHours(+1);
BlobBaseClient blobClient = new BlobBaseClient(
BlobBaseClient blobClient = InstrumentClient(new BlobBaseClient(
blobUriBuilder.Uri,
constants.Sas.SharedKeyCredential,
GetOptions());
GetOptions()));

BlobSasBuilder sasBuilder = new BlobSasBuilder(permissions, expiresOn)
{
Expand Down Expand Up @@ -6125,10 +6125,10 @@ public void GenerateSas_BuilderWrongVersion()
blobUriBuilder.Path += constants.Sas.Account + "/" + containerName + "/" + blobName;
BlobSasPermissions permissions = BlobSasPermissions.Read;
DateTimeOffset expiresOn = Recording.UtcNow.AddHours(+1);
BlobBaseClient blobClient = new BlobBaseClient(
BlobBaseClient blobClient = InstrumentClient(new BlobBaseClient(
blobUriBuilder.Uri,
constants.Sas.SharedKeyCredential,
GetOptions());
GetOptions()));

BlobSasBuilder sasBuilder = new BlobSasBuilder(permissions, expiresOn)
{
Expand Down
Loading