8
8
import org .testng .annotations .BeforeClass ;
9
9
import org .testng .annotations .Test ;
10
10
11
+ import java .net .MalformedURLException ;
11
12
import java .util .Collections ;
12
13
import java .util .Set ;
13
14
import java .util .concurrent .ExecutionException ;
@@ -33,15 +34,8 @@ public void acquireTokenSilent_OrganizationAuthority_TokenRefreshed(String envir
33
34
IPublicClientApplication pca = getPublicClientApplicationWithTokensInCache ();
34
35
35
36
IAccount account = pca .getAccounts ().join ().iterator ().next ();
36
- SilentParameters parameters = SilentParameters .builder (
37
- Collections .singleton (cfg .graphDefaultScope ()),
38
- account ).build ();
39
-
40
- IAuthenticationResult result = pca .acquireTokenSilently (parameters ).get ();
41
-
42
- Assert .assertNotNull (result );
43
- Assert .assertNotNull (result .accessToken ());
44
- Assert .assertNotNull (result .idToken ());
37
+ IAuthenticationResult result = acquireTokenSilently (pca , account , cfg .graphDefaultScope (), false );
38
+ assertResultNotNull (result );
45
39
}
46
40
47
41
@ Test (dataProvider = "environments" , dataProviderClass = EnvironmentsProvider .class )
@@ -58,22 +52,12 @@ public void acquireTokenSilent_LabAuthority_TokenNotRefreshed(String environment
58
52
authority (cfg .organizationsAuthority ()).
59
53
build ();
60
54
61
- IAuthenticationResult result = pca .acquireToken (UserNamePasswordParameters .
62
- builder (Collections .singleton (cfg .graphDefaultScope ()),
63
- user .getUpn (),
64
- user .getPassword ().toCharArray ())
65
- .build ())
66
- .get ();
55
+ IAuthenticationResult result = acquireTokenUsernamePassword (user , pca , cfg .graphDefaultScope ());
67
56
68
57
IAccount account = pca .getAccounts ().join ().iterator ().next ();
69
- SilentParameters parameters = SilentParameters .builder (
70
- Collections .singleton (cfg .graphDefaultScope ()), account ).
71
- build ();
58
+ IAuthenticationResult acquireSilentResult = acquireTokenSilently (pca , account , cfg .graphDefaultScope (), false );
59
+ assertResultNotNull (result );
72
60
73
- IAuthenticationResult acquireSilentResult = pca .acquireTokenSilently (parameters ).get ();
74
-
75
- Assert .assertNotNull (acquireSilentResult .accessToken ());
76
- Assert .assertNotNull (result .idToken ());
77
61
// Check that access and id tokens are coming from cache
78
62
Assert .assertEquals (result .accessToken (), acquireSilentResult .accessToken ());
79
63
Assert .assertEquals (result .idToken (), acquireSilentResult .idToken ());
@@ -90,27 +74,15 @@ public void acquireTokenSilent_ForceRefresh(String environment) throws Exception
90
74
authority (cfg .organizationsAuthority ()).
91
75
build ();
92
76
93
- IAuthenticationResult result = pca .acquireToken (UserNamePasswordParameters .
94
- builder (Collections .singleton (cfg .graphDefaultScope ()),
95
- user .getUpn (),
96
- user .getPassword ().toCharArray ())
97
- .build ())
98
- .get ();
77
+ IAuthenticationResult result = acquireTokenUsernamePassword (user , pca , cfg .graphDefaultScope ());
78
+ assertResultNotNull (result );
99
79
100
80
IAccount account = pca .getAccounts ().join ().iterator ().next ();
101
- SilentParameters parameters = SilentParameters .builder (
102
- Collections .singleton (cfg .graphDefaultScope ()), account ).
103
- forceRefresh (true ).
104
- build ();
105
-
106
- IAuthenticationResult resultAfterRefresh = pca .acquireTokenSilently (parameters ).get ();
81
+ IAuthenticationResult resultAfterRefresh = acquireTokenSilently (pca , account , cfg .graphDefaultScope (), true );
82
+ assertResultNotNull (resultAfterRefresh );
107
83
108
- Assert .assertNotNull (resultAfterRefresh );
109
- Assert .assertNotNull (resultAfterRefresh .accessToken ());
110
- Assert .assertNotNull (resultAfterRefresh .idToken ());
111
84
// Check that new refresh and id tokens are being returned
112
- Assert .assertNotEquals (result .accessToken (), resultAfterRefresh .accessToken ());
113
- Assert .assertNotEquals (result .idToken (), resultAfterRefresh .idToken ());
85
+ assertResultRefreshed (result , resultAfterRefresh );
114
86
}
115
87
116
88
@ Test (dataProvider = "environments" , dataProviderClass = EnvironmentsProvider .class )
@@ -123,31 +95,72 @@ public void acquireTokenSilent_MultipleAccountsInCache_UseCorrectAccount(String
123
95
User user = labUserProvider .getFederatedAdfsUser (cfg .azureEnvironment , FederationProvider .ADFS_4 );
124
96
125
97
// acquire token for different account
126
- pca .acquireToken (UserNamePasswordParameters .
127
- builder (Collections .singleton (cfg .graphDefaultScope ()),
128
- user .getUpn (),
129
- user .getPassword ().toCharArray ())
130
- .build ())
131
- .get ();
98
+ acquireTokenUsernamePassword (user , pca , cfg .graphDefaultScope ());
132
99
133
100
Set <IAccount > accounts = pca .getAccounts ().join ();
134
101
IAccount account = accounts .stream ().filter (
135
102
x -> x .username ().equalsIgnoreCase (
136
103
user .getUpn ())).findFirst ().orElse (null );
137
104
138
- SilentParameters parameters = SilentParameters .builder (
139
- Collections .singleton (cfg .graphDefaultScope ()), account ).
140
- forceRefresh (true ).
105
+ IAuthenticationResult result = acquireTokenSilently (pca , account , cfg .graphDefaultScope (), false );
106
+ assertResultNotNull (result );
107
+ Assert .assertEquals (result .account ().username (), user .getUpn ());
108
+ }
109
+
110
+ @ Test (dataProvider = "environments" , dataProviderClass = EnvironmentsProvider .class )
111
+ public void acquireTokenSilent_ADFS2019 (String environment ) throws Exception {
112
+ cfg = new Config (environment );
113
+
114
+ UserQueryParameters query = new UserQueryParameters ();
115
+ query .parameters .put (UserQueryParameters .AZURE_ENVIRONMENT , cfg .azureEnvironment );
116
+ query .parameters .put (UserQueryParameters .FEDERATION_PROVIDER , FederationProvider .ADFS_2019 );
117
+ query .parameters .put (UserQueryParameters .USER_TYPE , UserType .FEDERATED );
118
+
119
+ User user = labUserProvider .getLabUser (query );
120
+
121
+ PublicClientApplication pca = PublicClientApplication .builder (
122
+ user .getAppId ()).
123
+ authority (cfg .organizationsAuthority ()).
141
124
build ();
142
125
143
- IAuthenticationResult result = pca .acquireTokenSilently (parameters ).get ();
126
+ IAuthenticationResult result = acquireTokenUsernamePassword (user , pca , cfg .graphDefaultScope ());
127
+ assertResultNotNull (result );
144
128
145
- Assert .assertNotNull (result );
146
- Assert .assertNotNull (result .accessToken ());
147
- Assert .assertNotNull (result .idToken ());
148
- Assert .assertEquals (result .account ().username (), user .getUpn ());
129
+ IAccount account = pca .getAccounts ().join ().iterator ().next ();
130
+ IAuthenticationResult acquireSilentResult = acquireTokenSilently (pca , account , TestConstants .ADFS_SCOPE , false );
131
+ assertResultNotNull (acquireSilentResult );
132
+
133
+ account = pca .getAccounts ().join ().iterator ().next ();
134
+ IAuthenticationResult resultAfterRefresh = acquireTokenSilently (pca , account , TestConstants .ADFS_SCOPE , true );
135
+ assertResultNotNull (resultAfterRefresh );
136
+
137
+ assertResultRefreshed (result , resultAfterRefresh );
149
138
}
150
139
140
+ @ Test
141
+ public void acquireTokenSilent_B2C () throws Exception {
142
+ UserQueryParameters query = new UserQueryParameters ();
143
+ query .parameters .put (UserQueryParameters .USER_TYPE , UserType .B2C );
144
+ query .parameters .put (UserQueryParameters .B2C_PROVIDER , B2CProvider .LOCAL );
145
+ User user = labUserProvider .getLabUser (query );
146
+
147
+ PublicClientApplication pca = PublicClientApplication .builder (
148
+ user .getAppId ()).
149
+ b2cAuthority (TestConstants .B2C_AUTHORITY_ROPC ).
150
+ build ();
151
+
152
+ IAuthenticationResult result = acquireTokenUsernamePassword (user , pca , TestConstants .B2C_READ_SCOPE );
153
+ assertResultNotNull (result );
154
+
155
+ IAccount account = pca .getAccounts ().join ().iterator ().next ();
156
+ IAuthenticationResult resultAfterRefresh = acquireTokenSilently (pca , account , TestConstants .B2C_READ_SCOPE , true );
157
+ assertResultNotNull (resultAfterRefresh );
158
+
159
+ assertResultRefreshed (result , resultAfterRefresh );
160
+ }
161
+
162
+
163
+
151
164
@ Test
152
165
public void acquireTokenSilent_usingCommonAuthority_returnCachedAt () throws Exception {
153
166
acquireTokenSilent_returnCachedTokens (cfg .organizationsAuthority ());
@@ -226,12 +239,7 @@ private void acquireTokenSilent_returnCachedTokens(String authority) throws Exce
226
239
authority (authority ).
227
240
build ();
228
241
229
- IAuthenticationResult interactiveAuthResult = pca .acquireToken (UserNamePasswordParameters .
230
- builder (Collections .singleton (cfg .graphDefaultScope ()),
231
- user .getUpn (),
232
- user .getPassword ().toCharArray ())
233
- .build ())
234
- .get ();
242
+ IAuthenticationResult interactiveAuthResult = acquireTokenUsernamePassword (user , pca , cfg .graphDefaultScope ());
235
243
236
244
Assert .assertNotNull (interactiveAuthResult );
237
245
@@ -254,12 +262,35 @@ private IPublicClientApplication getPublicClientApplicationWithTokensInCache()
254
262
authority (cfg .organizationsAuthority ()).
255
263
build ();
256
264
257
- pca .acquireToken (
258
- UserNamePasswordParameters .builder (
259
- Collections .singleton (cfg .graphDefaultScope ()),
265
+ acquireTokenUsernamePassword (user , pca , cfg .graphDefaultScope ());
266
+ return pca ;
267
+ }
268
+
269
+ private IAuthenticationResult acquireTokenSilently (IPublicClientApplication pca , IAccount account , String scope , Boolean forceRefresh ) throws InterruptedException , ExecutionException , MalformedURLException {
270
+ return pca .acquireTokenSilently (SilentParameters .
271
+ builder (Collections .singleton (scope ), account ).
272
+ forceRefresh (forceRefresh ).
273
+ build ())
274
+ .get ();
275
+ }
276
+
277
+ private IAuthenticationResult acquireTokenUsernamePassword (User user , IPublicClientApplication pca , String scope ) throws InterruptedException , ExecutionException {
278
+ return pca .acquireToken (UserNamePasswordParameters .
279
+ builder (Collections .singleton (scope ),
260
280
user .getUpn (),
261
281
user .getPassword ().toCharArray ())
262
- .build ()).get ();
263
- return pca ;
282
+ .build ())
283
+ .get ();
284
+ }
285
+
286
+ private void assertResultNotNull (IAuthenticationResult result ) {
287
+ Assert .assertNotNull (result );
288
+ Assert .assertNotNull (result .accessToken ());
289
+ Assert .assertNotNull (result .idToken ());
290
+ }
291
+
292
+ private void assertResultRefreshed (IAuthenticationResult result , IAuthenticationResult resultAfterRefresh ) {
293
+ Assert .assertNotEquals (result .accessToken (), resultAfterRefresh .accessToken ());
294
+ Assert .assertNotEquals (result .idToken (), resultAfterRefresh .idToken ());
264
295
}
265
296
}
0 commit comments