@@ -86,7 +86,7 @@ public void acquireTokenWithAuthorizationCode_ManagedUser(){
86
86
false );
87
87
labUserProvider .getUserPassword (labResponse .getUser ());
88
88
89
- assertAcquireTokenCommon (labResponse , AuthorityType . AAD );
89
+ assertAcquireTokenAAD (labResponse );
90
90
}
91
91
92
92
@ Test
@@ -97,7 +97,7 @@ public void acquireTokenWithAuthorizationCode_ADFSv2019_Federated(){
97
97
true );
98
98
labUserProvider .getUserPassword (labResponse .getUser ());
99
99
100
- assertAcquireTokenCommon (labResponse , AuthorityType . AAD );
100
+ assertAcquireTokenAAD (labResponse );
101
101
}
102
102
103
103
@ Test
@@ -108,7 +108,7 @@ public void acquireTokenWithAuthorizationCode_ADFSv2019_NotFederated(){
108
108
true );
109
109
labUserProvider .getUserPassword (labResponse .getUser ());
110
110
111
- assertAcquireTokenCommon (labResponse , AuthorityType . AAD );
111
+ assertAcquireTokenAAD (labResponse );
112
112
}
113
113
114
114
@ Test
@@ -119,7 +119,7 @@ public void acquireTokenWithAuthorizationCode_ADFSv4_Federated(){
119
119
false );
120
120
labUserProvider .getUserPassword (labResponse .getUser ());
121
121
122
- assertAcquireTokenCommon (labResponse , AuthorityType . AAD );
122
+ assertAcquireTokenAAD (labResponse );
123
123
}
124
124
125
125
@ Test
@@ -130,7 +130,7 @@ public void acquireTokenWithAuthorizationCode_ADFSv4_NotFederated(){
130
130
false );
131
131
labUserProvider .getUserPassword (labResponse .getUser ());
132
132
133
- assertAcquireTokenCommon (labResponse , AuthorityType . AAD );
133
+ assertAcquireTokenAAD (labResponse );
134
134
}
135
135
136
136
@ Test
@@ -140,8 +140,8 @@ public void acquireTokenWithAuthorizationCode_ADFSv3_Federated(){
140
140
true ,
141
141
false );
142
142
labUserProvider .getUserPassword (labResponse .getUser ());
143
+ assertAcquireTokenAAD (labResponse );
143
144
144
- assertAcquireTokenCommon (labResponse , AuthorityType .AAD );
145
145
}
146
146
147
147
@ Test
@@ -152,7 +152,7 @@ public void acquireTokenWithAuthorizationCode_ADFSv3_NotFederated(){
152
152
false );
153
153
labUserProvider .getUserPassword (labResponse .getUser ());
154
154
155
- assertAcquireTokenCommon (labResponse , AuthorityType . AAD );
155
+ assertAcquireTokenAAD (labResponse );
156
156
}
157
157
158
158
@ Test
@@ -163,7 +163,7 @@ public void acquireTokenWithAuthorizationCode_ADFSv2_Federated(){
163
163
false );
164
164
labUserProvider .getUserPassword (labResponse .getUser ());
165
165
166
- assertAcquireTokenCommon (labResponse , AuthorityType . AAD );
166
+ assertAcquireTokenAAD (labResponse );
167
167
}
168
168
169
169
@ Test
@@ -174,7 +174,7 @@ public void acquireTokenWithAuthorizationCode_ADFSv2_NotFederated(){
174
174
false );
175
175
labUserProvider .getUserPassword (labResponse .getUser ());
176
176
177
- assertAcquireTokenCommon (labResponse , AuthorityType . AAD );
177
+ assertAcquireTokenAAD (labResponse );
178
178
}
179
179
180
180
@ Test
@@ -187,7 +187,7 @@ public void acquireTokenWithAuthorizationCode_B2C_Local(){
187
187
String b2CAppId = "b876a048-55a5-4fc5-9403-f5d90cb1c852" ;
188
188
labResponse .setAppId (b2CAppId );
189
189
190
- assertAcquireTokenCommon (labResponse , AuthorityType . B2C );
190
+ assertAcquireTokenB2C (labResponse );
191
191
}
192
192
193
193
@ Test
@@ -200,26 +200,39 @@ public void acquireTokenWithAuthorizationCode_B2C_Google(){
200
200
String b2CAppId = "b876a048-55a5-4fc5-9403-f5d90cb1c852" ;
201
201
labResponse .setAppId (b2CAppId );
202
202
203
- assertAcquireTokenCommon (labResponse , AuthorityType . B2C );
203
+ assertAcquireTokenB2C (labResponse );
204
204
}
205
205
206
- @ Test
207
- public void acquireTokenWithAuthorizationCode_B2C_Facebook (){
208
- LabResponse labResponse = labUserProvider .getB2cUser (
209
- B2CIdentityProvider .FACEBOOK ,
210
- false );
211
- labUserProvider .getUserPassword (labResponse .getUser ());
206
+ // TODO uncomment when lab fixes facebook test account
207
+ // @Test
208
+ // public void acquireTokenWithAuthorizationCode_B2C_Facebook(){
209
+ // LabResponse labResponse = labUserProvider.getB2cUser(
210
+ // B2CIdentityProvider.FACEBOOK,
211
+ // false);
212
+ // labUserProvider.getUserPassword(labResponse.getUser());
213
+ //
214
+ // String b2CAppId = "b876a048-55a5-4fc5-9403-f5d90cb1c852";
215
+ // labResponse.setAppId(b2CAppId);
216
+ //
217
+ // assertAcquireTokenB2C(labResponse);
218
+ // }
212
219
213
- String b2CAppId = "b876a048-55a5-4fc5-9403-f5d90cb1c852" ;
214
- labResponse .setAppId (b2CAppId );
215
220
216
- assertAcquireTokenCommon (labResponse , AuthorityType .B2C );
217
- }
221
+ private void assertAcquireTokenAAD (LabResponse labResponse ){
222
+ String authCode = acquireAuthorizationCodeAutomated (labResponse , AuthorityType .AAD );
223
+ AuthenticationResult result = acquireTokenInteractiveAAD (labResponse , authCode );
218
224
225
+ Assert .assertNotNull (result );
226
+ Assert .assertNotNull (result .accessToken ());
227
+ Assert .assertNotNull (result .refreshToken ());
228
+ Assert .assertNotNull (result .idToken ());
229
+ // TODO AuthenticationResult should have an getAccountInfo API
230
+ // Assert.assertEquals(labResponse.getUser().getUpn(), result.getAccountInfo().getUsername());
231
+ }
219
232
220
- private void assertAcquireTokenCommon (LabResponse labResponse , AuthorityType authorityType ){
221
- String authCode = acquireAuthorizationCodeAutomated (labResponse , authorityType );
222
- AuthenticationResult result = acquireTokenInteractive (labResponse , authorityType , authCode );
233
+ private void assertAcquireTokenB2C (LabResponse labResponse ){
234
+ String authCode = acquireAuthorizationCodeAutomated (labResponse , AuthorityType . B2C );
235
+ AuthenticationResult result = acquireTokenInteractiveB2C (labResponse , authCode );
223
236
224
237
Assert .assertNotNull (result );
225
238
Assert .assertNotNull (result .accessToken ());
@@ -229,14 +242,16 @@ private void assertAcquireTokenCommon(LabResponse labResponse, AuthorityType aut
229
242
// Assert.assertEquals(labResponse.getUser().getUpn(), result.getAccountInfo().getUsername());
230
243
}
231
244
232
- private AuthenticationResult acquireTokenInteractive (
245
+ private AuthenticationResult acquireTokenInteractiveAAD (
233
246
LabResponse labResponse ,
234
- AuthorityType authorityType ,
235
247
String authCode ){
236
248
237
249
AuthenticationResult result ;
238
250
try {
239
- PublicClientApplication pca = createPublicClientApplication (labResponse , authorityType );
251
+ PublicClientApplication pca = PublicClientApplication .builder (
252
+ labResponse .getAppId ()).
253
+ authority (TestConstants .AUTHORITY_ORGANIZATIONS ).
254
+ build ();
240
255
241
256
result = pca .acquireToken (AuthorizationCodeParameters
242
257
.builder (authCode ,
@@ -252,22 +267,31 @@ private AuthenticationResult acquireTokenInteractive(
252
267
return result ;
253
268
}
254
269
255
- private PublicClientApplication createPublicClientApplication (
256
- LabResponse labResponse ,
257
- AuthorityType authorityType ) throws MalformedURLException {
258
- if (authorityType == AuthorityType .AAD ){
259
- return new PublicClientApplication .Builder (
260
- labResponse .getAppId ()).
261
- authority (TestConstants .AUTHORITY_ORGANIZATIONS ).
262
- build ();
263
- } else {
264
- return new PublicClientApplication .Builder (
265
- labResponse .getAppId ()).
266
- b2cAuthority (TestConstants .B2C_AUTHORITY_SIGN_IN ).
267
- build ();
270
+ private AuthenticationResult acquireTokenInteractiveB2C (LabResponse labResponse ,
271
+ String authCode ) {
272
+ AuthenticationResult result ;
273
+ try {
274
+ IClientCredential credential = ClientCredentialFactory .create ("=]Y)_A7LX`]6\" ]_PoD!)Lo24" );
275
+ ConfidentialClientApplication cca = ConfidentialClientApplication .builder (
276
+ labResponse .getAppId (),
277
+ credential )
278
+ .b2cAuthority (TestConstants .B2C_AUTHORITY_SIGN_IN )
279
+ .build ();
280
+
281
+ result = cca .acquireToken (AuthorizationCodeParameters .builder (
282
+ authCode ,
283
+ new URI (TestConstants .LOCALHOST + tcpListener .getPort ()))
284
+ .scopes (Collections .singleton (TestConstants .B2C_LAB_SCOPE ))
285
+ .build ())
286
+ .get ();
287
+ } catch (Exception e ){
288
+ LOG .error ("Error acquiring token with authCode: " + e .getMessage ());
289
+ throw new RuntimeException ("Error acquiring token with authCode: " + e .getMessage ());
268
290
}
291
+ return result ;
269
292
}
270
293
294
+
271
295
private String acquireAuthorizationCodeAutomated (
272
296
LabResponse labUserData ,
273
297
AuthorityType authorityType ){
@@ -364,18 +388,21 @@ private String buildAuthenticationCodeURL(String appId, AuthorityType authorityT
364
388
int portNumber = tcpListener .getPort ();
365
389
366
390
String authority ;
391
+ String scope ;
367
392
if (authorityType == AuthorityType .AAD ){
368
393
authority = TestConstants .AUTHORITY_ORGANIZATIONS ;
394
+ scope = TestConstants .GRAPH_DEFAULT_SCOPE ;
369
395
} else {
370
396
authority = TestConstants .B2C_AUTHORITY_URL ;
397
+ scope = TestConstants .B2C_LAB_SCOPE ;
371
398
}
372
399
373
400
redirectUrl = authority + "oauth2/v2.0/authorize?" +
374
401
"response_type=code" +
375
402
"&response_mode=query" +
376
403
"&client_id=" + appId +
377
404
"&redirect_uri=" + URLEncoder .encode (TestConstants .LOCALHOST + portNumber , "UTF-8" ) +
378
- "&scope=" + URLEncoder .encode ("openid offline_access profile " + TestConstants . GRAPH_DEFAULT_SCOPE , "UTF-8" );
405
+ "&scope=" + URLEncoder .encode ("openid offline_access profile " + scope , "UTF-8" );
379
406
380
407
if (authorityType == AuthorityType .B2C ){
381
408
redirectUrl = redirectUrl + "&p=" + TestConstants .B2C_SIGN_IN_POLICY ;
0 commit comments