diff --git a/examples/BearerTokenAuthentication.md b/examples/BearerTokenAuthentication.md index 8f1dacaea..d25388714 100644 --- a/examples/BearerTokenAuthentication.md +++ b/examples/BearerTokenAuthentication.md @@ -1,12 +1,12 @@ class BearerTokenAuthenticationExamples { public static void main { //Getting access token - Method #1 - TwilioBearerTokenAuth.init(GRANT_TYPE, CLIENT_ID, CLIENT_SECRET); + TwilioOrgsTokenAuth.init(GRANT_TYPE, CLIENT_ID, CLIENT_SECRET); //Getting access token - Method #2 //To provide custom token manager implementation //Need not call init method if customer token manager is passed - //TwilioBearerTokenAuth.setTokenManager(new OrgsTokenManager(grantType, clientId, clientSecret)); + //TwilioOrgsTokenAuth.setTokenManager(new OrgsTokenManager(grantType, clientId, clientSecret)); fetchAccountDetails(); } diff --git a/src/main/java/com/twilio/TwilioBearerTokenAuth.java b/src/main/java/com/twilio/TwilioOrgsTokenAuth.java similarity index 68% rename from src/main/java/com/twilio/TwilioBearerTokenAuth.java rename to src/main/java/com/twilio/TwilioOrgsTokenAuth.java index bcb3eb5b3..3f10f12f0 100644 --- a/src/main/java/com/twilio/TwilioBearerTokenAuth.java +++ b/src/main/java/com/twilio/TwilioOrgsTokenAuth.java @@ -13,7 +13,7 @@ import com.twilio.http.bearertoken.OrgsTokenManager; @Preview -public class TwilioBearerTokenAuth { +public class TwilioOrgsTokenAuth { private static String accessToken; @Getter private static List userAgentExtensions; @@ -25,7 +25,7 @@ public class TwilioBearerTokenAuth { private static volatile ExecutorService executorService; - private TwilioBearerTokenAuth() { + private TwilioOrgsTokenAuth() { } public static synchronized void init(String grantType, String clientId, String clientSecret) { @@ -51,14 +51,14 @@ private static void validateAuthCredentials(String grantType, String clientId, S } public static BearerTokenTwilioRestClient getRestClient() { - if (TwilioBearerTokenAuth.restClient == null) { - synchronized (TwilioBearerTokenAuth.class) { - if (TwilioBearerTokenAuth.restClient == null) { - TwilioBearerTokenAuth.restClient = buildOAuthRestClient(); + if (TwilioOrgsTokenAuth.restClient == null) { + synchronized (TwilioOrgsTokenAuth.class) { + if (TwilioOrgsTokenAuth.restClient == null) { + TwilioOrgsTokenAuth.restClient = buildOAuthRestClient(); } } } - return TwilioBearerTokenAuth.restClient; + return TwilioOrgsTokenAuth.restClient; } /** * Returns the Twilio executor service. @@ -66,14 +66,14 @@ public static BearerTokenTwilioRestClient getRestClient() { * @return the Twilio executor service */ public static ExecutorService getExecutorService() { - if (TwilioBearerTokenAuth.executorService == null) { - synchronized (TwilioBearerTokenAuth.class) { - if (TwilioBearerTokenAuth.executorService == null) { - TwilioBearerTokenAuth.executorService = Executors.newCachedThreadPool(); + if (TwilioOrgsTokenAuth.executorService == null) { + synchronized (TwilioOrgsTokenAuth.class) { + if (TwilioOrgsTokenAuth.executorService == null) { + TwilioOrgsTokenAuth.executorService = Executors.newCachedThreadPool(); } } } - return TwilioBearerTokenAuth.executorService; + return TwilioOrgsTokenAuth.executorService; } private static BearerTokenTwilioRestClient buildOAuthRestClient() { @@ -81,13 +81,15 @@ private static BearerTokenTwilioRestClient buildOAuthRestClient() { BearerTokenTwilioRestClient.Builder builder = new BearerTokenTwilioRestClient.Builder(); if (userAgentExtensions != null) { - builder.userAgentExtensions(TwilioBearerTokenAuth.userAgentExtensions); + builder.userAgentExtensions(TwilioOrgsTokenAuth.userAgentExtensions); } - builder.region(TwilioBearerTokenAuth.region); - builder.edge(TwilioBearerTokenAuth.edge); - builder.tokenManager(TwilioBearerTokenAuth.tokenManager); - builder.tokenManager(TwilioBearerTokenAuth.tokenManager); + builder.region(TwilioOrgsTokenAuth.region); + builder.edge(TwilioOrgsTokenAuth.edge); + if(TwilioOrgsTokenAuth.tokenManager == null){ + tokenManager = new OrgsTokenManager(grantType, clientId, clientSecret, code, redirectUri, audience, refreshToken, scope); + } + builder.tokenManager(TwilioOrgsTokenAuth.tokenManager); return builder.build(); } @@ -96,7 +98,8 @@ private static BearerTokenTwilioRestClient buildOAuthRestClient() { * Invalidates the volatile state held in the Twilio singleton. */ private static void invalidate() { - TwilioBearerTokenAuth.restClient = null; + TwilioOrgsTokenAuth.restClient = null; + TwilioOrgsTokenAuth.tokenManager = null; } diff --git a/src/main/java/com/twilio/base/bearertoken/Creator.java b/src/main/java/com/twilio/base/bearertoken/Creator.java index b221459ed..8cb676cef 100644 --- a/src/main/java/com/twilio/base/bearertoken/Creator.java +++ b/src/main/java/com/twilio/base/bearertoken/Creator.java @@ -1,6 +1,6 @@ package com.twilio.base.bearertoken; -import com.twilio.TwilioBearerTokenAuth; +import com.twilio.TwilioOrgsTokenAuth; import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; import java.util.concurrent.CompletableFuture; @@ -18,7 +18,7 @@ public abstract class Creator { * @return future that resolves to requested object */ public CompletableFuture createAsync() { - return createAsync(TwilioBearerTokenAuth.getRestClient()); + return createAsync(TwilioOrgsTokenAuth.getRestClient()); } /** @@ -28,7 +28,7 @@ public CompletableFuture createAsync() { * @return future that resolves to requested object */ public CompletableFuture createAsync(final BearerTokenTwilioRestClient client) { - return CompletableFuture.supplyAsync(() -> create(client), TwilioBearerTokenAuth.getExecutorService()); + return CompletableFuture.supplyAsync(() -> create(client), TwilioOrgsTokenAuth.getExecutorService()); } /** @@ -37,7 +37,7 @@ public CompletableFuture createAsync(final BearerTokenTwilioRestClient client * @return Requested object */ public T create() { - return create(TwilioBearerTokenAuth.getRestClient()); + return create(TwilioOrgsTokenAuth.getRestClient()); } /** diff --git a/src/main/java/com/twilio/base/bearertoken/Deleter.java b/src/main/java/com/twilio/base/bearertoken/Deleter.java index 44d738159..3b49cfd0b 100644 --- a/src/main/java/com/twilio/base/bearertoken/Deleter.java +++ b/src/main/java/com/twilio/base/bearertoken/Deleter.java @@ -1,7 +1,7 @@ package com.twilio.base.bearertoken; import com.twilio.Twilio; -import com.twilio.TwilioBearerTokenAuth; +import com.twilio.TwilioOrgsTokenAuth; import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; import java.util.concurrent.CompletableFuture; @@ -19,7 +19,7 @@ public abstract class Deleter { * @return future that resolves to true if the object was deleted */ public CompletableFuture deleteAsync() { - return deleteAsync(TwilioBearerTokenAuth.getRestClient()); + return deleteAsync(TwilioOrgsTokenAuth.getRestClient()); } /** @@ -38,7 +38,7 @@ public CompletableFuture deleteAsync(final BearerTokenTwilioRestClient * @return true if the object was deleted */ public boolean delete() { - return delete(TwilioBearerTokenAuth.getRestClient()); + return delete(TwilioOrgsTokenAuth.getRestClient()); } /** diff --git a/src/main/java/com/twilio/base/bearertoken/Fetcher.java b/src/main/java/com/twilio/base/bearertoken/Fetcher.java index f5e00dbcc..5654895a3 100644 --- a/src/main/java/com/twilio/base/bearertoken/Fetcher.java +++ b/src/main/java/com/twilio/base/bearertoken/Fetcher.java @@ -1,6 +1,6 @@ package com.twilio.base.bearertoken; -import com.twilio.TwilioBearerTokenAuth; +import com.twilio.TwilioOrgsTokenAuth; import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; import java.util.concurrent.CompletableFuture; @@ -18,7 +18,7 @@ public abstract class Fetcher { * @return future that resolves to requested object */ public CompletableFuture fetchAsync() { - return fetchAsync(TwilioBearerTokenAuth.getRestClient()); + return fetchAsync(TwilioOrgsTokenAuth.getRestClient()); } /** @@ -28,7 +28,7 @@ public CompletableFuture fetchAsync() { * @return future that resolves to requested object */ public CompletableFuture fetchAsync(final BearerTokenTwilioRestClient client) { - return CompletableFuture.supplyAsync(() -> fetch(client), TwilioBearerTokenAuth.getExecutorService()); + return CompletableFuture.supplyAsync(() -> fetch(client), TwilioOrgsTokenAuth.getExecutorService()); } /** @@ -37,7 +37,7 @@ public CompletableFuture fetchAsync(final BearerTokenTwilioRestClient client) * @return Requested object */ public T fetch() { - return fetch(TwilioBearerTokenAuth.getRestClient()); + return fetch(TwilioOrgsTokenAuth.getRestClient()); } /** diff --git a/src/main/java/com/twilio/base/bearertoken/Reader.java b/src/main/java/com/twilio/base/bearertoken/Reader.java index db7373661..15e221a3f 100644 --- a/src/main/java/com/twilio/base/bearertoken/Reader.java +++ b/src/main/java/com/twilio/base/bearertoken/Reader.java @@ -1,6 +1,6 @@ package com.twilio.base.bearertoken; -import com.twilio.TwilioBearerTokenAuth; +import com.twilio.TwilioOrgsTokenAuth; import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; import java.util.concurrent.CompletableFuture; @@ -21,7 +21,7 @@ public abstract class Reader { * @return ResourceSet of objects */ public ResourceSet read() { - return read(TwilioBearerTokenAuth.getRestClient()); + return read(TwilioOrgsTokenAuth.getRestClient()); } /** @@ -38,7 +38,7 @@ public ResourceSet read() { * @return future that resolves to the ResourceSet of objects */ public CompletableFuture> readAsync() { - return readAsync(TwilioBearerTokenAuth.getRestClient()); + return readAsync(TwilioOrgsTokenAuth.getRestClient()); } /** @@ -48,7 +48,7 @@ public CompletableFuture> readAsync() { * @return future that resolves to the ResourceSet of objects */ public CompletableFuture> readAsync(final BearerTokenTwilioRestClient client) { - return CompletableFuture.supplyAsync(() -> read(client), TwilioBearerTokenAuth.getExecutorService()); + return CompletableFuture.supplyAsync(() -> read(client), TwilioOrgsTokenAuth.getExecutorService()); } /** @@ -57,7 +57,7 @@ public CompletableFuture> readAsync(final BearerTokenTwilioRestCl * @return Page containing the first pageSize of resources */ public Page firstPage() { - return firstPage(TwilioBearerTokenAuth.getRestClient()); + return firstPage(TwilioOrgsTokenAuth.getRestClient()); } /** @@ -75,7 +75,7 @@ public Page firstPage() { * @return Page containing the target pageSize of resources */ public Page getPage(final String targetUrl) { - return getPage(targetUrl, TwilioBearerTokenAuth.getRestClient()); + return getPage(targetUrl, TwilioOrgsTokenAuth.getRestClient()); } /** @@ -94,7 +94,7 @@ public Page getPage(final String targetUrl) { * @return Page containing the next pageSize of resources */ public Page nextPage(final Page page) { - return nextPage(page, TwilioBearerTokenAuth.getRestClient()); + return nextPage(page, TwilioOrgsTokenAuth.getRestClient()); } /** @@ -113,7 +113,7 @@ public Page nextPage(final Page page) { * @return Page containing the previous pageSize of resources */ public Page previousPage(final Page page) { - return previousPage(page, TwilioBearerTokenAuth.getRestClient()); + return previousPage(page, TwilioOrgsTokenAuth.getRestClient()); } /** diff --git a/src/main/java/com/twilio/base/bearertoken/Updater.java b/src/main/java/com/twilio/base/bearertoken/Updater.java index f41ae300a..690e3604c 100644 --- a/src/main/java/com/twilio/base/bearertoken/Updater.java +++ b/src/main/java/com/twilio/base/bearertoken/Updater.java @@ -1,6 +1,6 @@ package com.twilio.base.bearertoken; -import com.twilio.TwilioBearerTokenAuth; +import com.twilio.TwilioOrgsTokenAuth; import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; import java.util.concurrent.CompletableFuture; @@ -18,7 +18,7 @@ public abstract class Updater { * @return future that resolves to requested object */ public CompletableFuture updateAsync() { - return updateAsync(TwilioBearerTokenAuth.getRestClient()); + return updateAsync(TwilioOrgsTokenAuth.getRestClient()); } /** @@ -28,7 +28,7 @@ public CompletableFuture updateAsync() { * @return future that resolves to requested object */ public CompletableFuture updateAsync(final BearerTokenTwilioRestClient client) { - return CompletableFuture.supplyAsync(() -> update(client), TwilioBearerTokenAuth.getExecutorService()); + return CompletableFuture.supplyAsync(() -> update(client), TwilioOrgsTokenAuth.getExecutorService()); } /** @@ -37,7 +37,7 @@ public CompletableFuture updateAsync(final BearerTokenTwilioRestClient client * @return Requested object */ public T update() { - return update(TwilioBearerTokenAuth.getRestClient()); + return update(TwilioOrgsTokenAuth.getRestClient()); } /** diff --git a/src/main/java/com/twilio/http/bearertoken/OrgsTokenManager.java b/src/main/java/com/twilio/http/bearertoken/OrgsTokenManager.java index 13e131ded..211cccce0 100644 --- a/src/main/java/com/twilio/http/bearertoken/OrgsTokenManager.java +++ b/src/main/java/com/twilio/http/bearertoken/OrgsTokenManager.java @@ -43,6 +43,9 @@ public synchronized String fetchAccessToken(){ Token token; try { token = tokenCreator.create(); + if(token == null || token.getAccessToken() == null){ + throw new ApiException("Token creation failed"); + } } catch(Exception e){ throw new ApiException("Token creation failed"); }