55
66import com .azure .core .credential .TokenRequestContext ;
77import com .azure .core .exception .ClientAuthenticationException ;
8+ import com .azure .core .test .utils .TestConfigurationSource ;
89import com .azure .core .util .Configuration ;
910import com .azure .core .util .ConfigurationBuilder ;
1011import com .azure .identity .implementation .IdentityClient ;
1314import com .microsoft .aad .msal4j .MsalServiceException ;
1415import org .junit .Assert ;
1516import org .junit .Test ;
16-
17-
1817import org .mockito .MockedConstruction ;
1918import reactor .core .publisher .Mono ;
2019import reactor .test .StepVerifier ;
@@ -34,18 +33,17 @@ public class DefaultAzureCredentialTest {
3433 private static final String CLIENT_ID = UUID .randomUUID ().toString ();
3534
3635 @ Test
37- public void testUseEnvironmentCredential () throws Exception {
38- Configuration configuration = Configuration .getGlobalConfiguration ().clone ();
39-
36+ public void testUseEnvironmentCredential () {
4037 // setup
4138 String secret = "secret" ;
4239 String token1 = "token1" ;
4340 TokenRequestContext request1 = new TokenRequestContext ().addScopes ("https://management.azure.com" );
4441 OffsetDateTime expiresOn = OffsetDateTime .now (ZoneOffset .UTC ).plusHours (1 );
45- configuration .put ("AZURE_CLIENT_ID" , CLIENT_ID );
46- configuration .put ("AZURE_CLIENT_SECRET" , secret );
47- configuration .put ("AZURE_TENANT_ID" , TENANT_ID );
4842
43+ Configuration configuration = TestUtils .createTestConfiguration (new TestConfigurationSource ()
44+ .put ("AZURE_CLIENT_ID" , CLIENT_ID )
45+ .put ("AZURE_CLIENT_SECRET" , secret )
46+ .put ("AZURE_TENANT_ID" , TENANT_ID ));
4947
5048 try (MockedConstruction <IdentityClient > mocked = mockConstruction (IdentityClient .class , (identityClient , context ) -> {
5149 when (identityClient .authenticateWithAzureDeveloperCli (request1 )).thenReturn (Mono .empty ());
@@ -63,7 +61,7 @@ public void testUseEnvironmentCredential() throws Exception {
6361 }
6462
6563 @ Test
66- public void testUseManagedIdentityCredential () throws Exception {
64+ public void testUseManagedIdentityCredential () {
6765 // setup
6866 String token1 = "token1" ;
6967 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://management.azure.com" );
@@ -89,16 +87,15 @@ public void testUseManagedIdentityCredential() throws Exception {
8987 }
9088
9189 @ Test
92- public void testUseWorkloadIdentityCredentialWithManagedIdentityClientId () throws Exception {
90+ public void testUseWorkloadIdentityCredentialWithManagedIdentityClientId () {
9391 // setup
9492 String token1 = "token1" ;
9593 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://management.azure.com" );
9694 OffsetDateTime expiresAt = OffsetDateTime .now (ZoneOffset .UTC ).plusHours (1 );
97- EmptyEnvironmentConfigurationSource source = new EmptyEnvironmentConfigurationSource ();
98- Configuration configuration = new ConfigurationBuilder (source , source , source ).build ();
99- configuration .put (Configuration .PROPERTY_AZURE_AUTHORITY_HOST , AzureAuthorityHosts .AZURE_PUBLIC_CLOUD );
100- configuration .put (Configuration .PROPERTY_AZURE_TENANT_ID , "dummy-tenant" );
101- configuration .put (ManagedIdentityCredential .AZURE_FEDERATED_TOKEN_FILE , "dummy-path" );
95+ Configuration configuration = TestUtils .createTestConfiguration (new TestConfigurationSource ()
96+ .put (Configuration .PROPERTY_AZURE_AUTHORITY_HOST , AzureAuthorityHosts .AZURE_PUBLIC_CLOUD )
97+ .put (Configuration .PROPERTY_AZURE_TENANT_ID , "dummy-tenant" )
98+ .put (ManagedIdentityCredential .AZURE_FEDERATED_TOKEN_FILE , "dummy-path" ));
10299
103100 // mock
104101 try (MockedConstruction <IdentityClient > mocked = mockConstruction (IdentityClient .class , (identityClient , context ) -> {
@@ -121,16 +118,15 @@ public void testUseWorkloadIdentityCredentialWithManagedIdentityClientId() throw
121118 }
122119
123120 @ Test
124- public void testUseWorkloadIdentityCredentialWithWorkloadClientId () throws Exception {
121+ public void testUseWorkloadIdentityCredentialWithWorkloadClientId () {
125122 // setup
126123 String token1 = "token1" ;
127124 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://management.azure.com" );
128125 OffsetDateTime expiresAt = OffsetDateTime .now (ZoneOffset .UTC ).plusHours (1 );
129- EmptyEnvironmentConfigurationSource source = new EmptyEnvironmentConfigurationSource ();
130- Configuration configuration = new ConfigurationBuilder (source , source , source ).build ();
131- configuration .put (Configuration .PROPERTY_AZURE_AUTHORITY_HOST , AzureAuthorityHosts .AZURE_PUBLIC_CLOUD );
132- configuration .put (Configuration .PROPERTY_AZURE_TENANT_ID , "dummy-tenant" );
133- configuration .put (ManagedIdentityCredential .AZURE_FEDERATED_TOKEN_FILE , "dummy-path" );
126+ Configuration configuration = TestUtils .createTestConfiguration (new TestConfigurationSource ()
127+ .put (Configuration .PROPERTY_AZURE_AUTHORITY_HOST , AzureAuthorityHosts .AZURE_PUBLIC_CLOUD )
128+ .put (Configuration .PROPERTY_AZURE_TENANT_ID , "dummy-tenant" )
129+ .put (ManagedIdentityCredential .AZURE_FEDERATED_TOKEN_FILE , "dummy-path" ));
134130
135131 // mock
136132 try (MockedConstruction <IdentityClient > mocked = mockConstruction (IdentityClient .class , (identityClient , context ) -> {
@@ -148,13 +144,12 @@ public void testUseWorkloadIdentityCredentialWithWorkloadClientId() throws Excep
148144 }
149145
150146 @ Test
151- public void testUseWorkloadIdentityCredentialWithClientIdFlow () throws Exception {
147+ public void testUseWorkloadIdentityCredentialWithClientIdFlow () {
152148 // setup
153- EmptyEnvironmentConfigurationSource source = new EmptyEnvironmentConfigurationSource ();
154- Configuration configuration = new ConfigurationBuilder (source , source , source ).build ();
155- configuration .put (Configuration .PROPERTY_AZURE_AUTHORITY_HOST , AzureAuthorityHosts .AZURE_PUBLIC_CLOUD );
156- configuration .put (Configuration .PROPERTY_AZURE_TENANT_ID , "dummy-tenant" );
157- configuration .put (ManagedIdentityCredential .AZURE_FEDERATED_TOKEN_FILE , "dummy-path" );
149+ Configuration configuration = TestUtils .createTestConfiguration (new TestConfigurationSource ()
150+ .put (Configuration .PROPERTY_AZURE_AUTHORITY_HOST , AzureAuthorityHosts .AZURE_PUBLIC_CLOUD )
151+ .put (Configuration .PROPERTY_AZURE_TENANT_ID , "dummy-tenant" )
152+ .put (ManagedIdentityCredential .AZURE_FEDERATED_TOKEN_FILE , "dummy-path" ));
158153
159154 // test
160155 String clientId = "dummy-client-id" ;
@@ -174,7 +169,11 @@ public void testUseWorkloadIdentityCredentialWithClientIdFlow() throws Exception
174169 Assert .assertNotNull (workloadIdentityCredential );
175170 Assert .assertEquals (clientId , workloadIdentityCredential .getClientId ());
176171
177- configuration .put (Configuration .PROPERTY_AZURE_CLIENT_ID , clientId );
172+ configuration = TestUtils .createTestConfiguration (new TestConfigurationSource ()
173+ .put (Configuration .PROPERTY_AZURE_AUTHORITY_HOST , AzureAuthorityHosts .AZURE_PUBLIC_CLOUD )
174+ .put (Configuration .PROPERTY_AZURE_TENANT_ID , "dummy-tenant" )
175+ .put (ManagedIdentityCredential .AZURE_FEDERATED_TOKEN_FILE , "dummy-path" )
176+ .put (Configuration .PROPERTY_AZURE_CLIENT_ID , clientId ));
178177 credential = new DefaultAzureCredentialBuilder ()
179178 .configuration (configuration )
180179 .build ();
@@ -186,7 +185,7 @@ public void testUseWorkloadIdentityCredentialWithClientIdFlow() throws Exception
186185
187186
188187 @ Test
189- public void testUseAzureCliCredential () throws Exception {
188+ public void testUseAzureCliCredential () {
190189 // setup
191190 String token1 = "token1" ;
192191 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://management.azure.com" );
@@ -215,7 +214,7 @@ public void testUseAzureCliCredential() throws Exception {
215214 }
216215
217216 @ Test
218- public void testUseAzureDeveloperCliCredential () throws Exception {
217+ public void testUseAzureDeveloperCliCredential () {
219218 // setup
220219 String token1 = "token1" ;
221220 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://management.azure.com" );
@@ -244,7 +243,7 @@ public void testUseAzureDeveloperCliCredential() throws Exception {
244243 }
245244
246245 @ Test
247- public void testNoCredentialWorks () throws Exception {
246+ public void testNoCredentialWorks () {
248247 // setup
249248 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://management.azure.com" );
250249 EmptyEnvironmentConfigurationSource source = new EmptyEnvironmentConfigurationSource ();
@@ -278,7 +277,7 @@ public void testNoCredentialWorks() throws Exception {
278277 }
279278
280279 @ Test
281- public void testCredentialUnavailable () throws Exception {
280+ public void testCredentialUnavailable () {
282281 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://management.azure.com" );
283282 EmptyEnvironmentConfigurationSource source = new EmptyEnvironmentConfigurationSource ();
284283 Configuration configuration = new ConfigurationBuilder (source , source , source ).build ();
@@ -307,7 +306,7 @@ public void testCredentialUnavailable() throws Exception {
307306 }
308307
309308 @ Test
310- public void testCredentialUnavailableSync () throws Exception {
309+ public void testCredentialUnavailableSync () {
311310 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://management.azure.com" );
312311 EmptyEnvironmentConfigurationSource source = new EmptyEnvironmentConfigurationSource ();
313312 Configuration configuration = new ConfigurationBuilder (source , source , source ).build ();
@@ -349,57 +348,63 @@ public void testInvalidIdCombination() {
349348 }
350349
351350 @ Test
352- public void testInvalidAdditionalTenant () throws Exception {
351+ public void testInvalidAdditionalTenant () {
353352 // setup
354- Configuration . getGlobalConfiguration ()
353+ Configuration configuration = TestUtils . createTestConfiguration ( new TestConfigurationSource ()
355354 .put (Configuration .PROPERTY_AZURE_CLIENT_ID , "foo" )
356355 .put (Configuration .PROPERTY_AZURE_CLIENT_SECRET , "bar" )
357- .put (Configuration .PROPERTY_AZURE_TENANT_ID , "baz" );
356+ .put (Configuration .PROPERTY_AZURE_TENANT_ID , "baz" )) ;
358357
359358 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://vault.azure.net/.default" )
360359 .setTenantId ("newTenant" );
361360
362- DefaultAzureCredential credential =
363- new DefaultAzureCredentialBuilder ().additionallyAllowedTenants ("RANDOM" ).build ();
361+ DefaultAzureCredential credential = new DefaultAzureCredentialBuilder ()
362+ .additionallyAllowedTenants ("RANDOM" )
363+ .configuration (configuration )
364+ .build ();
364365
365366 StepVerifier .create (credential .getToken (request ))
366- .expectErrorMatches (e -> e instanceof ClientAuthenticationException && ( e . getMessage (). contains ( "The current credential is not configured to" )))
367- . verify ( );
367+ .verifyErrorMatches (e -> e instanceof ClientAuthenticationException
368+ && ( e . getMessage (). contains ( "The current credential is not configured to" )) );
368369 }
369370
370371 @ Test
371- public void testInvalidMultiTenantAuth () throws Exception {
372+ public void testInvalidMultiTenantAuth () {
372373 // setup
373- Configuration . getGlobalConfiguration ()
374+ Configuration configuration = TestUtils . createTestConfiguration ( new TestConfigurationSource ()
374375 .put (Configuration .PROPERTY_AZURE_CLIENT_ID , "foo" )
375376 .put (Configuration .PROPERTY_AZURE_CLIENT_SECRET , "bar" )
376- .put (Configuration .PROPERTY_AZURE_TENANT_ID , "baz" );
377+ .put (Configuration .PROPERTY_AZURE_TENANT_ID , "baz" )) ;
377378
378379 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://vault.azure.net/.default" )
379380 .setTenantId ("newTenant" );
380381
381- DefaultAzureCredential credential =
382- new DefaultAzureCredentialBuilder ().build ();
382+ DefaultAzureCredential credential = new DefaultAzureCredentialBuilder ()
383+ .configuration (configuration )
384+ .build ();
385+
383386 StepVerifier .create (credential .getToken (request ))
384- .expectErrorMatches (e -> e instanceof ClientAuthenticationException && ( e . getMessage (). contains ( "The current credential is not configured to" )))
385- . verify ( );
387+ .verifyErrorMatches (e -> e instanceof ClientAuthenticationException
388+ && ( e . getMessage (). contains ( "The current credential is not configured to" )) );
386389 }
387390
388391 @ Test
389- public void testValidMultiTenantAuth () throws Exception {
392+ public void testValidMultiTenantAuth () {
390393 // setup
391- Configuration . getGlobalConfiguration ()
394+ Configuration configuration = TestUtils . createTestConfiguration ( new TestConfigurationSource ()
392395 .put (Configuration .PROPERTY_AZURE_CLIENT_ID , "foo" )
393396 .put (Configuration .PROPERTY_AZURE_CLIENT_SECRET , "bar" )
394- .put (Configuration .PROPERTY_AZURE_TENANT_ID , "baz" );
397+ .put (Configuration .PROPERTY_AZURE_TENANT_ID , "baz" )) ;
395398
396399 TokenRequestContext request = new TokenRequestContext ().addScopes ("https://vault.azure.net/.default" )
397400 .setTenantId ("newTenant" );
398401
399- DefaultAzureCredential credential =
400- new DefaultAzureCredentialBuilder ().additionallyAllowedTenants ("*" ).build ();
402+ DefaultAzureCredential credential = new DefaultAzureCredentialBuilder ()
403+ .additionallyAllowedTenants ("*" )
404+ .configuration (configuration )
405+ .build ();
406+
401407 StepVerifier .create (credential .getToken (request ))
402- .expectErrorMatches (e -> e .getCause () instanceof MsalServiceException )
403- .verify ();
408+ .verifyErrorMatches (e -> e .getCause () instanceof MsalServiceException );
404409 }
405410}
0 commit comments