Skip to content

Commit 52f1316

Browse files
Copilotsrnagar
andcommitted
Deprecate SharedTokenCacheCredential and remove from DefaultAzureCredential chain
Co-authored-by: srnagar <[email protected]>
1 parent 2ccf672 commit 52f1316

File tree

5 files changed

+23
-24
lines changed

5 files changed

+23
-24
lines changed

sdk/identity/azure-identity/src/main/java/com/azure/identity/DefaultAzureCredential.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
* <li>{@link EnvironmentCredential}</li>
2020
* <li>{@link WorkloadIdentityCredential}</li>
2121
* <li>{@link ManagedIdentityCredential}</li>
22-
* <li>{@link SharedTokenCacheCredential}</li>
2322
* <li>{@link IntelliJCredential}</li>
2423
* <li>{@link AzureCliCredential}</li>
2524
* <li>{@link AzurePowerShellCredential}</li>

sdk/identity/azure-identity/src/main/java/com/azure/identity/DefaultAzureCredentialBuilder.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ private ArrayList<TokenCredential> getCredentialsChain() {
292292
useDeveloperCredentials = true;
293293
}
294294

295-
ArrayList<TokenCredential> output = new ArrayList<TokenCredential>(8);
295+
ArrayList<TokenCredential> output = new ArrayList<TokenCredential>(7);
296296
if (useProductionCredentials) {
297297
output.add(new EnvironmentCredential(identityClientOptions.clone()));
298298
output.add(getWorkloadIdentityCredential());
@@ -301,8 +301,6 @@ private ArrayList<TokenCredential> getCredentialsChain() {
301301
}
302302

303303
if (useDeveloperCredentials) {
304-
output.add(new SharedTokenCacheCredential(null, IdentityConstants.DEVELOPER_SINGLE_SIGN_ON_ID, tenantId,
305-
identityClientOptions.clone()));
306304
output.add(new IntelliJCredential(tenantId, identityClientOptions.clone()));
307305
output.add(new AzureCliCredential(tenantId, identityClientOptions.clone()));
308306
output.add(new AzurePowerShellCredential(tenantId, identityClientOptions.clone()));

sdk/identity/azure-identity/src/main/java/com/azure/identity/SharedTokenCacheCredential.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@
2727
* <p>This credential is a legacy mechanism for authenticating clients using credentials provided to Visual Studio.</p>
2828
*
2929
* @see com.azure.identity
30+
* @deprecated This credential was originally created to support authentication with Visual Studio. Since Visual Studio
31+
* was the only application that wrote to this token cache, this credential has been deprecated in favor of other
32+
* developer credentials like {@link AzureCliCredential}, {@link AzureDeveloperCliCredential},
33+
* {@link AzurePowerShellCredential}, or {@link IntelliJCredential} for local development scenarios.
3034
*/
35+
@Deprecated
3136
public class SharedTokenCacheCredential implements TokenCredential {
3237
private static final ClientLogger LOGGER = new ClientLogger(SharedTokenCacheCredential.class);
3338

sdk/identity/azure-identity/src/main/java/com/azure/identity/SharedTokenCacheCredentialBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@
1010
* This mechanism for Visual Studio authentication has been replaced by the {@link VisualStudioCodeCredential}/>.</p>
1111
*
1212
* @see SharedTokenCacheCredential
13+
* @deprecated This credential was originally created to support authentication with Visual Studio. Since Visual Studio
14+
* was the only application that wrote to this token cache, this credential has been deprecated in favor of other
15+
* developer credentials like {@link AzureCliCredential}, {@link AzureDeveloperCliCredential},
16+
* {@link AzurePowerShellCredential}, or {@link IntelliJCredential} for local development scenarios.
1317
*/
18+
@Deprecated
1419
public class SharedTokenCacheCredentialBuilder extends AadCredentialBuilderBase<SharedTokenCacheCredentialBuilder> {
1520
private String username;
1621

sdk/identity/azure-identity/src/test/java/com/azure/identity/DefaultAzureCredentialTest.java

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -301,11 +301,6 @@ public void testNoCredentialWorks() {
301301
when(identityClient.authenticateWithManagedIdentityMsalClient(request)).thenReturn(
302302
Mono.error(new CredentialUnavailableException("Cannot get token from managed identity")));
303303
});
304-
MockedConstruction<SharedTokenCacheCredential> sharedTokenCacheCredentialMock
305-
= mockConstruction(SharedTokenCacheCredential.class, (sharedTokenCacheCredential, context) -> {
306-
when(sharedTokenCacheCredential.getToken(request)).thenReturn(
307-
Mono.error(new CredentialUnavailableException("Cannot get token from shared token cache")));
308-
});
309304
MockedConstruction<AzureDeveloperCliCredential> azureDeveloperCliCredentialMock
310305
= mockConstruction(AzureDeveloperCliCredential.class, (AzureDeveloperCliCredential, context) -> {
311306
when(AzureDeveloperCliCredential.getToken(request)).thenReturn(Mono.error(
@@ -335,7 +330,6 @@ public void testNoCredentialWorks() {
335330
&& t.getMessage().startsWith("EnvironmentCredential authentication unavailable. "))
336331
.verify();
337332
Assertions.assertNotNull(identityClientMock);
338-
Assertions.assertNotNull(sharedTokenCacheCredentialMock);
339333
Assertions.assertNotNull(azureCliCredentialMock);
340334
Assertions.assertNotNull(azureDeveloperCliCredentialMock);
341335
Assertions.assertNotNull(azurePowerShellCredentialMock);
@@ -663,15 +657,14 @@ public void testDeveloperOnlyCredentialsChain(String devValue) {
663657

664658
List<TokenCredential> credentials = extractCredentials(credential);
665659

666-
// Only developer credentials should be present (5)
667-
assertEquals(5, credentials.size());
660+
// Only developer credentials should be present (4)
661+
assertEquals(4, credentials.size());
668662

669663
// Verify developer credentials in order
670-
assertInstanceOf(SharedTokenCacheCredential.class, credentials.get(0));
671-
assertInstanceOf(IntelliJCredential.class, credentials.get(1));
672-
assertInstanceOf(AzureCliCredential.class, credentials.get(2));
673-
assertInstanceOf(AzurePowerShellCredential.class, credentials.get(3));
674-
assertInstanceOf(AzureDeveloperCliCredential.class, credentials.get(4));
664+
assertInstanceOf(IntelliJCredential.class, credentials.get(0));
665+
assertInstanceOf(AzureCliCredential.class, credentials.get(1));
666+
assertInstanceOf(AzurePowerShellCredential.class, credentials.get(2));
667+
assertInstanceOf(AzureDeveloperCliCredential.class, credentials.get(3));
675668
}
676669

677670
@ParameterizedTest
@@ -702,16 +695,15 @@ public void testDefaultCredentialChainWithoutFilter() {
702695
// Extract credentials to check their types and order
703696
List<TokenCredential> credentials = extractCredentials(credential);
704697

705-
// Verify the complete chain with all 8 credentials
706-
assertEquals(8, credentials.size());
698+
// Verify the complete chain with all 7 credentials
699+
assertEquals(7, credentials.size());
707700
assertInstanceOf(EnvironmentCredential.class, credentials.get(0));
708701
assertInstanceOf(WorkloadIdentityCredential.class, credentials.get(1));
709702
assertInstanceOf(ManagedIdentityCredential.class, credentials.get(2));
710-
assertInstanceOf(SharedTokenCacheCredential.class, credentials.get(3));
711-
assertInstanceOf(IntelliJCredential.class, credentials.get(4));
712-
assertInstanceOf(AzureCliCredential.class, credentials.get(5));
713-
assertInstanceOf(AzurePowerShellCredential.class, credentials.get(6));
714-
assertInstanceOf(AzureDeveloperCliCredential.class, credentials.get(7));
703+
assertInstanceOf(IntelliJCredential.class, credentials.get(3));
704+
assertInstanceOf(AzureCliCredential.class, credentials.get(4));
705+
assertInstanceOf(AzurePowerShellCredential.class, credentials.get(5));
706+
assertInstanceOf(AzureDeveloperCliCredential.class, credentials.get(6));
715707
}
716708

717709
/**

0 commit comments

Comments
 (0)