Skip to content

Commit c6fc879

Browse files
committed
changing token provider to be async
1 parent 8032444 commit c6fc879

File tree

4 files changed

+13
-11
lines changed

4 files changed

+13
-11
lines changed

src/integrationtest/java/com.microsoft.aad.msal4j/ConfidentialClientApplicationUnitT.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.security.*;
3030
import java.security.cert.CertificateException;
3131
import java.util.*;
32+
import java.util.concurrent.CompletableFuture;
3233
import java.util.concurrent.Future;
3334
import java.util.function.Function;
3435

@@ -362,7 +363,7 @@ public void validateAppTokenProviderAsync() throws Exception{
362363

363364
}
364365

365-
private TokenProviderResult getAppTokenProviderResult(String differentScopesForAt)
366+
private CompletableFuture<TokenProviderResult> getAppTokenProviderResult(String differentScopesForAt)
366367
{
367368
long currTimestampSec = new Date().getTime() / 1000;
368369
TokenProviderResult token = new TokenProviderResult();
@@ -371,7 +372,7 @@ private TokenProviderResult getAppTokenProviderResult(String differentScopesForA
371372
token.setExpiresInSeconds(currTimestampSec + 1000000);
372373
token.setRefreshInSeconds(currTimestampSec + 800000);
373374

374-
return token;
375+
return CompletableFuture.completedFuture(token);
375376
}
376377

377378
private SignedJWT createClientAssertion(String issuer) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException, NoSuchProviderException, JOSEException {

src/main/java/com/microsoft/aad/msal4j/AcquireTokenByAppProviderSupplier.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
package com.microsoft.aad.msal4j;
55

6+
import java.util.concurrent.CompletableFuture;
67
import java.util.concurrent.ExecutionException;
78

89
class AcquireTokenByAppProviderSupplier extends AuthenticationResultSupplier {
@@ -53,12 +54,11 @@ AuthenticationResult execute() throws Exception {
5354
return authenticationResult;
5455
}
5556

56-
public AuthenticationResult fetchTokenUsingAppTokenProvider(AppTokenProviderParameters appTokenProviderParameters) {
57+
public AuthenticationResult fetchTokenUsingAppTokenProvider(AppTokenProviderParameters appTokenProviderParameters) throws ExecutionException, InterruptedException {
5758

58-
// CompletableFuture<TokenProviderResult> completableFuture =
59-
// CompletableFuture.supplyAsync(() -> this.clientCredentialRequest.appTokenProvider.apply(appTokenProviderParameters));
59+
CompletableFuture<TokenProviderResult> completableFuture = this.clientCredentialRequest.appTokenProvider.apply(appTokenProviderParameters);
6060

61-
TokenProviderResult tokenProviderResult = this.clientCredentialRequest.appTokenProvider.apply(appTokenProviderParameters);
61+
TokenProviderResult tokenProviderResult = completableFuture.get();
6262

6363
validateTokenProviderResult(tokenProviderResult);
6464

src/main/java/com/microsoft/aad/msal4j/ClientCredentialRequest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55

66
import com.nimbusds.oauth2.sdk.ClientCredentialsGrant;
77

8+
import java.util.concurrent.CompletableFuture;
89
import java.util.function.Function;
910

1011
class ClientCredentialRequest extends MsalRequest {
1112

1213
ClientCredentialParameters parameters;
13-
Function<AppTokenProviderParameters, TokenProviderResult> appTokenProvider;
14+
Function<AppTokenProviderParameters, CompletableFuture<TokenProviderResult>> appTokenProvider;
1415

1516
ClientCredentialRequest(ClientCredentialParameters parameters,
1617
ConfidentialClientApplication application,
@@ -23,7 +24,7 @@ class ClientCredentialRequest extends MsalRequest {
2324
ClientCredentialRequest(ClientCredentialParameters parameters,
2425
ConfidentialClientApplication application,
2526
RequestContext requestContext,
26-
Function<AppTokenProviderParameters, TokenProviderResult> appTokenProvider) {
27+
Function<AppTokenProviderParameters, CompletableFuture<TokenProviderResult>> appTokenProvider) {
2728
super(application, createMsalGrant(parameters), requestContext);
2829
this.parameters = parameters;
2930
this.appTokenProvider = appTokenProvider;

src/main/java/com/microsoft/aad/msal4j/ConfidentialClientApplication.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class ConfidentialClientApplication extends AbstractClientApplicationBase
3434
private boolean clientCertAuthentication = false;
3535
private ClientCertificate clientCertificate;
3636

37-
public Function<AppTokenProviderParameters, TokenProviderResult> appTokenProvider;
37+
public Function<AppTokenProviderParameters, CompletableFuture<TokenProviderResult>> appTokenProvider;
3838

3939
@Accessors(fluent = true)
4040
@Getter
@@ -167,7 +167,7 @@ public static class Builder extends AbstractClientApplicationBase.Builder<Builde
167167

168168
private boolean sendX5c = true;
169169

170-
private Function<AppTokenProviderParameters, TokenProviderResult> appTokenProvider;
170+
private Function<AppTokenProviderParameters, CompletableFuture<TokenProviderResult>> appTokenProvider;
171171

172172
private Builder(String clientId, IClientCredential clientCredential) {
173173
super(clientId);
@@ -196,7 +196,7 @@ public ConfidentialClientApplication.Builder sendX5c(boolean val) {
196196
/// </summary>
197197
/// <param name="appTokenProvider">Authentication callback which returns an access token.</param>
198198
/// <returns>The builder to chain the .With methods</returns>
199-
public ConfidentialClientApplication.Builder appTokenProvider(Function<AppTokenProviderParameters, TokenProviderResult> appTokenProvider){
199+
public ConfidentialClientApplication.Builder appTokenProvider(Function<AppTokenProviderParameters, CompletableFuture<TokenProviderResult>> appTokenProvider){
200200
if(appTokenProvider!=null){
201201
this.appTokenProvider = appTokenProvider;
202202
return self();

0 commit comments

Comments
 (0)