Skip to content

Commit 55dc046

Browse files
authored
add azure_core::auth::AccessToken (#827)
1 parent a88fbf4 commit 55dc046

File tree

13 files changed

+29
-24
lines changed

13 files changed

+29
-24
lines changed

sdk/core/Cargo.toml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,11 @@ dyn-clone = "1.0"
2121
futures = "0.3"
2222
http = "0.2"
2323
log = "0.4"
24-
oauth2 = { version = "4.0", default-features = false }
2524
rand = "0.8"
2625
reqwest = { version = "0.11", features = [
2726
"stream",
2827
], default-features = false, optional = true }
29-
serde = "1.0"
30-
serde_derive = "1.0"
28+
serde = { version = "1.0", features = ["derive"] }
3129
serde_json = "1.0"
3230
url = "2.2"
3331
uuid = { version = "1.0" }
@@ -47,9 +45,9 @@ thiserror = "1.0"
4745

4846
[features]
4947
default = ["enable_reqwest"]
50-
enable_reqwest = ["reqwest/default-tls", "oauth2/native-tls"]
48+
enable_reqwest = ["reqwest/default-tls"]
5149
enable_reqwest_gzip = ["reqwest/gzip"]
52-
enable_reqwest_rustls = ["reqwest/rustls-tls", "oauth2/rustls-tls"]
50+
enable_reqwest_rustls = ["reqwest/rustls-tls"]
5351
test_e2e = []
5452
azurite_workaround = []
5553
mock_transport_framework = []

sdk/core/src/auth.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
11
//! Azure authentication and authorization.
22
33
use chrono::{DateTime, Utc};
4-
use oauth2::AccessToken;
4+
use serde::{Deserialize, Serialize};
55
use std::fmt::Debug;
66

7+
#[derive(Debug, Clone, Deserialize, Serialize)]
8+
pub struct AccessToken(String);
9+
10+
impl AccessToken {
11+
pub fn new(access_token: String) -> Self {
12+
Self(access_token)
13+
}
14+
pub fn secret(&self) -> &str {
15+
self.0.as_str()
16+
}
17+
}
18+
719
/// Represents an Azure service bearer access token with expiry information.
820
#[derive(Debug, Clone)]
921
pub struct TokenResponse {

sdk/device_update/src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@ use crate::device_update::UpdateOperation;
88

99
#[cfg(test)]
1010
mod tests {
11-
use azure_core::auth::{TokenCredential, TokenResponse};
11+
use azure_core::auth::{AccessToken, TokenCredential, TokenResponse};
1212
use azure_identity::AutoRefreshingTokenCredential;
1313
use chrono::{Duration, Utc};
14-
use oauth2::AccessToken;
1514
use std::sync::Arc;
1615

1716
pub(crate) fn mock_client() -> crate::client::DeviceUpdateClient {

sdk/identity/src/client_credentials_flow/login_response.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
use azure_core::auth::AccessToken;
12
use chrono::{DateTime, TimeZone, Utc};
2-
use oauth2::AccessToken;
33
use serde::{de, Deserialize, Deserializer};
44

55
#[derive(Debug, Clone, Deserialize)]

sdk/identity/src/device_code_flow/device_code_responses.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use oauth2::AccessToken;
1+
use azure_core::auth::AccessToken;
22
use serde::Deserialize;
33
use std::fmt;
44

sdk/identity/src/refresh_token.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
//! Refresh token utilities
22
33
use azure_core::{
4+
auth::AccessToken,
45
content_type,
56
error::{Error, ErrorKind, ResultExt},
67
headers, HttpClient, Request,
78
};
89
use http::Method;
9-
use oauth2::{AccessToken, ClientId, ClientSecret};
10+
use oauth2::{ClientId, ClientSecret};
1011
use serde::Deserialize;
1112
use std::fmt;
1213
use std::sync::Arc;

sdk/identity/src/token_credentials/azure_cli_credentials.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
use azure_core::auth::{TokenCredential, TokenResponse};
1+
use azure_core::auth::{AccessToken, TokenCredential, TokenResponse};
22
use azure_core::error::{Error, ErrorKind, ResultExt};
33
use chrono::{DateTime, Utc};
4-
use oauth2::AccessToken;
54
use serde::Deserialize;
65
use std::process::Command;
76
use std::str;

sdk/identity/src/token_credentials/client_certificate_credentials.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
use super::{authority_hosts, TokenCredential};
2-
use azure_core::auth::TokenResponse;
2+
use azure_core::auth::{AccessToken, TokenResponse};
33
use azure_core::error::{ErrorKind, ResultExt};
44
use base64::{CharacterSet, Config};
55
use chrono::Utc;
6-
use oauth2::AccessToken;
76
use openssl::{
87
error::ErrorStack,
98
hash::{hash, DigestBytes, MessageDigest},

sdk/identity/src/token_credentials/client_secret_credentials.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
use azure_core::auth::{TokenCredential, TokenResponse};
1+
use azure_core::auth::{AccessToken, TokenCredential, TokenResponse};
22
use azure_core::error::{ErrorKind, ResultExt};
33
use chrono::Utc;
4-
use oauth2::{
5-
basic::BasicClient, reqwest::async_http_client, AccessToken, AuthType, AuthUrl, Scope, TokenUrl,
6-
};
4+
use oauth2::{basic::BasicClient, reqwest::async_http_client, AuthType, AuthUrl, Scope, TokenUrl};
75
use std::{str, time::Duration};
86
use url::Url;
97

sdk/identity/src/token_credentials/imds_managed_identity_credentials.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
use azure_core::auth::{TokenCredential, TokenResponse};
1+
use azure_core::auth::{AccessToken, TokenCredential, TokenResponse};
22
use azure_core::error::{Error, ErrorKind, ResultExt};
33
use azure_core::{HttpClient, Request};
44
use chrono::{DateTime, TimeZone, Utc};
55
use http::Method;
6-
use oauth2::AccessToken;
76
use serde::{
87
de::{self, Deserializer},
98
Deserialize,

sdk/security_keyvault/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ pub use client::{CertificateClient, KeyClient};
77

88
#[cfg(test)]
99
mod tests {
10+
use azure_core::auth::AccessToken;
1011
use azure_core::auth::{TokenCredential, TokenResponse};
1112
use chrono::{Duration, Utc};
12-
use oauth2::AccessToken;
1313

1414
#[macro_export]
1515
macro_rules! mock_key_client {

sdk/storage_blobs/examples/device_code_flow.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ async fn main() -> azure_core::Result<()> {
7474
let storage_account_client = StorageAccountClient::new_bearer_token(
7575
http_client.clone(),
7676
&storage_account_name,
77-
authorization.access_token().secret() as &str,
77+
authorization.access_token().secret(),
7878
);
7979
let blob_service_client = storage_account_client.as_blob_service_client();
8080

sdk/storage_datalake/src/authorization_policies/token_credential.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ impl Policy for TokenCredentialAuthorizationPolicy {
4444
);
4545

4646
let token = self.credential.get_token(&self.resource).await?;
47-
let auth_header_value = format!("Bearer {}", token.token.secret().clone());
47+
let auth_header_value = format!("Bearer {}", token.token.secret());
4848

4949
request
5050
.headers_mut()

0 commit comments

Comments
 (0)