Skip to content

Commit

Permalink
allow wasm32 for azure_identity (#995)
Browse files Browse the repository at this point in the history
* make identity a dev-dependency for storage_datalake

* test_e2e needs identity default

* client secret credentials requires reqwest

Co-authored-by: Cameron Taggart <[email protected]>
  • Loading branch information
cataggar and ctaggart authored Aug 12, 2022
1 parent a63710a commit 2536038
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 7 deletions.
1 change: 1 addition & 0 deletions sdk/identity/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
//!
//! This crate also includes utilities for handling refresh tokens and accessing token credentials from many different sources.
#[cfg(feature = "enable_reqwest")]
pub mod authorization_code_flow;
pub mod client_credentials_flow;
#[cfg(feature = "development")]
Expand Down
12 changes: 8 additions & 4 deletions sdk/identity/src/token_credentials/default_credentials.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use super::{AzureCliCredential, EnvironmentCredential, ImdsManagedIdentityCredential};
use super::{AzureCliCredential, ImdsManagedIdentityCredential};
use azure_core::auth::{TokenCredential, TokenResponse};
use azure_core::error::{Error, ErrorKind, ResultExt};

Expand Down Expand Up @@ -51,8 +51,9 @@ impl DefaultAzureCredentialBuilder {
+ self.include_managed_identity_credential as usize;
let mut sources = Vec::<DefaultAzureCredentialEnum>::with_capacity(source_count);
if self.include_environment_credential {
#[cfg(feature = "enable_reqwest")]
sources.push(DefaultAzureCredentialEnum::Environment(
EnvironmentCredential::default(),
super::EnvironmentCredential::default(),
));
}
if self.include_managed_identity_credential {
Expand All @@ -69,8 +70,9 @@ impl DefaultAzureCredentialBuilder {

/// Types of TokenCredential supported by DefaultAzureCredential
pub enum DefaultAzureCredentialEnum {
#[cfg(feature = "enable_reqwest")]
/// `TokenCredential` from environment variable.
Environment(EnvironmentCredential),
Environment(super::EnvironmentCredential),
/// `TokenCredential` from managed identity that has been assigned in this deployment environment.
ManagedIdentity(ImdsManagedIdentityCredential),
/// `TokenCredential` from Azure CLI.
Expand All @@ -82,6 +84,7 @@ pub enum DefaultAzureCredentialEnum {
impl TokenCredential for DefaultAzureCredentialEnum {
async fn get_token(&self, resource: &str) -> azure_core::Result<TokenResponse> {
match self {
#[cfg(feature = "enable_reqwest")]
DefaultAzureCredentialEnum::Environment(credential) => {
credential.get_token(resource).await.context(
ErrorKind::Credential,
Expand Down Expand Up @@ -128,7 +131,8 @@ impl Default for DefaultAzureCredential {
fn default() -> Self {
DefaultAzureCredential {
sources: vec![
DefaultAzureCredentialEnum::Environment(EnvironmentCredential::default()),
#[cfg(feature = "enable_reqwest")]
DefaultAzureCredentialEnum::Environment(super::EnvironmentCredential::default()),
DefaultAzureCredentialEnum::ManagedIdentity(
ImdsManagedIdentityCredential::default(),
),
Expand Down
4 changes: 4 additions & 0 deletions sdk/identity/src/token_credentials/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,20 @@ mod auto_refreshing_credentials;
mod azure_cli_credentials;
#[cfg(feature = "client_certificate")]
mod client_certificate_credentials;
#[cfg(feature = "enable_reqwest")]
mod client_secret_credentials;
mod default_credentials;
#[cfg(feature = "enable_reqwest")]
mod environment_credentials;
mod imds_managed_identity_credentials;

pub use auto_refreshing_credentials::*;
pub use azure_cli_credentials::*;
#[cfg(feature = "client_certificate")]
pub use client_certificate_credentials::*;
#[cfg(feature = "enable_reqwest")]
pub use client_secret_credentials::*;
pub use default_credentials::*;
#[cfg(feature = "enable_reqwest")]
pub use environment_credentials::*;
pub use imds_managed_identity_credentials::*;
2 changes: 1 addition & 1 deletion sdk/storage_blobs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ oauth2 = { version = "4.0.0", default-features = false }
mock_transport = { path = "../../eng/test/mock_transport" }

[features]
default = ["enable_reqwest", "azure_identity/default"]
default = ["enable_reqwest"]
test_e2e = []
azurite_workaround = []
enable_reqwest = ["azure_core/enable_reqwest", "azure_storage/enable_reqwest"]
Expand Down
4 changes: 2 additions & 2 deletions sdk/storage_datalake/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ edition = "2021"
[dependencies]
async-trait = "0.1"
azure_core = { path = "../core", version = "0.4" }
azure_identity = { path = "../identity", default_features = false }
azure_storage = { path = "../storage", version = "0.5", default_features = false }
base64 = "0.13"
bytes = "1.0"
Expand All @@ -30,11 +29,12 @@ uuid = { version = "1.0", features = ["v4"] }
url = "2.2"

[dev-dependencies]
azure_identity = { path = "../identity", default_features = false }
tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] }
mock_transport = { path = "../../eng/test/mock_transport" }

[features]
default = ["enable_reqwest"]
test_e2e = []
enable_reqwest = ["azure_core/enable_reqwest", "azure_storage/enable_reqwest", "azure_identity/enable_reqwest"]
enable_reqwest = ["azure_core/enable_reqwest", "azure_storage/enable_reqwest"]
enable_reqwest_rustls = ["azure_core/enable_reqwest_rustls"]

0 comments on commit 2536038

Please sign in to comment.