Skip to content
This repository was archived by the owner on Jun 15, 2026. It is now read-only.

Commit 8330354

Browse files
authored
Unify default subscription field (#177)
* Use 0.13 of Okio * Unify default subscription field
1 parent fc92fbf commit 8330354

3 files changed

Lines changed: 27 additions & 47 deletions

File tree

azure-client-authentication/src/main/java/com/microsoft/azure/credentials/ApplicationTokenCredentials.java

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ public class ApplicationTokenCredentials extends AzureTokenCredentials {
4040
private byte[] certificate;
4141
/** The certificate password. */
4242
private String certPassword;
43-
/** The default subscription to use, if any. */
44-
private String defaultSubscription;
4543

4644
/**
4745
* Initializes a new instance of the ApplicationTokenCredentials.
@@ -117,24 +115,6 @@ public String toString() {
117115
}
118116
}
119117

120-
/**
121-
* @return The default subscription ID, if any
122-
*/
123-
public String defaultSubscriptionId() {
124-
return defaultSubscription;
125-
}
126-
127-
/**
128-
* Set default subscription ID.
129-
*
130-
* @param subscriptionId the default subscription ID.
131-
* @return the credentials object itself.
132-
*/
133-
public ApplicationTokenCredentials withDefaultSubscriptionId(String subscriptionId) {
134-
this.defaultSubscription = subscriptionId;
135-
return this;
136-
}
137-
138118
/**
139119
* Initializes the credentials based on the provided credentials file.
140120
*
@@ -178,7 +158,7 @@ public static ApplicationTokenCredentials fromFile(File credentialsFile) throws
178158
final String defaultSubscriptionId = authSettings.getProperty(CredentialSettings.SUBSCRIPTION_ID.toString());
179159

180160
if (clientKey != null) {
181-
return new ApplicationTokenCredentials(
161+
return (ApplicationTokenCredentials) new ApplicationTokenCredentials(
182162
clientId,
183163
tenantId,
184164
clientKey,
@@ -197,7 +177,7 @@ public static ApplicationTokenCredentials fromFile(File credentialsFile) throws
197177
} else {
198178
certs = Files.readAllBytes(Paths.get(credentialsFile.getParent(), certificate));
199179
}
200-
return new ApplicationTokenCredentials(
180+
return (ApplicationTokenCredentials) new ApplicationTokenCredentials(
201181
clientId,
202182
tenantId,
203183
certs,

azure-client-authentication/src/main/java/com/microsoft/azure/credentials/AzureCliCredentials.java

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ public final class AzureCliCredentials extends AzureTokenCredentials {
3030
private static final ObjectMapper MAPPER = new JacksonAdapter().serializer().setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ssssss"));
3131
/** A mapping from resource endpoint to its cached access token. */
3232
private Map<String, AzureCliSubscription> subscriptions;
33-
private String defaultSubscriptionId;
3433
private File azureProfile;
3534
private File accessTokens;
3635
private Lock lock = new ReentrantLock();
@@ -58,7 +57,7 @@ private synchronized void loadAccessTokens() throws IOException {
5857
&& subscription.tenant().equalsIgnoreCase(token.tenant())) {
5958
subscriptions.put(subscription.id(), subscription.withToken(token));
6059
if (subscription.isDefault()) {
61-
defaultSubscriptionId = subscription.id();
60+
withDefaultSubscriptionId(subscription.id());
6261
}
6362
}
6463
}
@@ -101,50 +100,32 @@ public static AzureCliCredentials create(File azureProfile, File accessTokens) t
101100
* @return the active directory application client id
102101
*/
103102
public String clientId() {
104-
return subscriptions.get(defaultSubscriptionId).clientId();
103+
return subscriptions.get(defaultSubscriptionId()).clientId();
105104
}
106105

107106
/**
108107
* @return the tenant or domain the containing the application
109108
*/
110109
@Override
111110
public String domain() {
112-
return subscriptions.get(defaultSubscriptionId).tenant();
111+
return subscriptions.get(defaultSubscriptionId()).tenant();
113112
}
114113

115114
/**
116115
* @return the Azure environment to authenticate with
117116
*/
118117
public AzureEnvironment environment() {
119-
return subscriptions.get(defaultSubscriptionId).environment();
120-
}
121-
122-
/**
123-
* @return the default subscription ID logged in in Azure CLI
124-
*/
125-
public String defaultSubscriptionId() {
126-
return defaultSubscriptionId;
127-
}
128-
129-
/**
130-
* Set default subscription ID.
131-
*
132-
* @param subscriptionId the default subscription ID.
133-
* @return the credentials object itself.
134-
*/
135-
public AzureCliCredentials withDefaultSubscriptionId(String subscriptionId) {
136-
this.defaultSubscriptionId = subscriptionId;
137-
return this;
118+
return subscriptions.get(defaultSubscriptionId()).environment();
138119
}
139120

140121
@Override
141122
public synchronized String getToken(String resource) throws IOException {
142-
String token = subscriptions.get(defaultSubscriptionId).credentialInstance().getToken(resource);
123+
String token = subscriptions.get(defaultSubscriptionId()).credentialInstance().getToken(resource);
143124
if (token == null) {
144125
System.err.println("Please login in Azure CLI and press any key to continue after you've successfully logged in.");
145126
System.in.read();
146127
loadAccessTokens();
147-
token = subscriptions.get(defaultSubscriptionId).credentialInstance().getToken(resource);
128+
token = subscriptions.get(defaultSubscriptionId()).credentialInstance().getToken(resource);
148129
}
149130
return token;
150131
}

azure-client-runtime/src/main/java/com/microsoft/azure/credentials/AzureTokenCredentials.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
public abstract class AzureTokenCredentials extends TokenCredentials {
2222
private final AzureEnvironment environment;
2323
private final String domain;
24+
private String defaultSubscription;
2425

2526
private Proxy proxy;
2627

@@ -75,6 +76,24 @@ public AzureEnvironment environment() {
7576
return environment;
7677
}
7778

79+
/**
80+
* @return The default subscription ID, if any
81+
*/
82+
public String defaultSubscriptionId() {
83+
return defaultSubscription;
84+
}
85+
86+
/**
87+
* Set default subscription ID.
88+
*
89+
* @param subscriptionId the default subscription ID.
90+
* @return the credentials object itself.
91+
*/
92+
public AzureTokenCredentials withDefaultSubscriptionId(String subscriptionId) {
93+
this.defaultSubscription = subscriptionId;
94+
return this;
95+
}
96+
7897
/**
7998
* @return the proxy being used for accessing Active Directory.
8099
*/

0 commit comments

Comments
 (0)