diff --git a/README.md b/README.md index edfc7096..2cdd9057 100644 --- a/README.md +++ b/README.md @@ -409,6 +409,22 @@ Authentication schemes defined for the API: - **Authorization URL**: - **Scopes**: N/A + +### Custom Token URL + +By default, access tokens are requested from the token URL defined by the API. To use a different token endpoint, call `setTokenUrl` on the `ApiClient` before making a request: + +```java +ApiClient client = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", null); +client.setTokenUrl("https://your-token-endpoint.example.com/oauth2/token"); +``` + +Pass that client to any API class as usual. Note that: + +- The value must be an absolute URL. Anything else throws an `IllegalArgumentException`. +- Any access token already acquired from the previous token URL is discarded, so the next request acquires a new one from the endpoint you set. +- The client must have been created with credentials (as above). Calling `setTokenUrl` on a client built without them throws a `RuntimeException`. + ## Recommendation diff --git a/custom_templates/libraries/okhttp-gson/ApiClient.mustache b/custom_templates/libraries/okhttp-gson/ApiClient.mustache index d19a7063..9dc34778 100644 --- a/custom_templates/libraries/okhttp-gson/ApiClient.mustache +++ b/custom_templates/libraries/okhttp-gson/ApiClient.mustache @@ -693,6 +693,26 @@ public class ApiClient { throw new RuntimeException("No OAuth2 authentication configured!"); } + {{#hasOAuthMethods}} + /** + * Helper method to set the token URL for the first OAuth2 authentication. + * Any access token acquired from the previous token URL is discarded, so the + * next request will acquire a new one from the given endpoint. + * + * @param tokenUrl The token URL. The value must be an absolute URL. + * @throws java.lang.IllegalArgumentException If the token URL is not an absolute URL + */ + public void setTokenUrl(String tokenUrl) { + for (Authentication auth : authentications.values()) { + if (auth instanceof RetryingOAuth) { + ((RetryingOAuth) auth).setTokenUrl(tokenUrl); + return; + } + } + throw new RuntimeException("No OAuth2 authentication configured!"); + } + {{/hasOAuthMethods}} + /** * Helper method to set credentials for AWSV4 Signature * diff --git a/custom_templates/libraries/okhttp-gson/README.mustache b/custom_templates/libraries/okhttp-gson/README.mustache index de1a697e..0df46460 100644 --- a/custom_templates/libraries/okhttp-gson/README.mustache +++ b/custom_templates/libraries/okhttp-gson/README.mustache @@ -187,6 +187,24 @@ Class | Method | HTTP request | Description {{/isOAuth}} {{/authMethods}} +{{#hasOAuthMethods}} + +### Custom Token URL + +By default, access tokens are requested from the token URL defined by the API. To use a different token endpoint, call `setTokenUrl` on the `ApiClient` before making a request: + +```java +ApiClient client = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", null); +client.setTokenUrl("https://your-token-endpoint.example.com/oauth2/token"); +``` + +Pass that client to any API class as usual. Note that: + +- The value must be an absolute URL. Anything else throws an `IllegalArgumentException`. +- Any access token already acquired from the previous token URL is discarded, so the next request acquires a new one from the endpoint you set. +- The client must have been created with credentials (as above). Calling `setTokenUrl` on a client built without them throws a `RuntimeException`. + +{{/hasOAuthMethods}} ## Recommendation diff --git a/custom_templates/libraries/okhttp-gson/auth/RetryingOAuth.mustache b/custom_templates/libraries/okhttp-gson/auth/RetryingOAuth.mustache index 82f51812..4352d79e 100644 --- a/custom_templates/libraries/okhttp-gson/auth/RetryingOAuth.mustache +++ b/custom_templates/libraries/okhttp-gson/auth/RetryingOAuth.mustache @@ -35,6 +35,10 @@ public class RetryingOAuth extends OAuth implements Interceptor { private String clientId; private String clientSecret; + private String tokenUrl; + private OAuthFlow flow; + private Map parameters; + /** * @param client An OkHttp client * @param tokenRequestBuilder A token request builder @@ -70,12 +74,10 @@ public class RetryingOAuth extends OAuth implements Interceptor { this(OAuthClientRequest.tokenLocation(tokenUrl)); this.clientId = clientId; this.clientSecret = clientSecret; - setFlow(flow); - if (parameters != null) { - for (Map.Entry entry : parameters.entrySet()) { - tokenRequestBuilder.setParameter(entry.getKey(), entry.getValue()); - } - } + this.tokenUrl = tokenUrl; + this.flow = flow; + this.parameters = parameters; + buildTokenRequest(); } /** @@ -99,7 +101,17 @@ public class RetryingOAuth extends OAuth implements Interceptor { this(client, OAuthClientRequest.tokenLocation(tokenUrl)); this.clientId = clientId; this.clientSecret = clientSecret; - setFlow(flow); + this.tokenUrl = tokenUrl; + this.flow = flow; + this.parameters = parameters; + buildTokenRequest(); + } + + private void buildTokenRequest() { + this.tokenRequestBuilder = OAuthClientRequest.tokenLocation(tokenUrl); + if (flow != null) { + setFlow(flow); + } if (parameters != null) { for (Map.Entry entry : parameters.entrySet()) { tokenRequestBuilder.setParameter(entry.getKey(), entry.getValue()); @@ -113,6 +125,7 @@ public class RetryingOAuth extends OAuth implements Interceptor { * @param flow The OAuth flow. */ public void setFlow(OAuthFlow flow) { + this.flow = flow; switch(flow) { case ACCESS_CODE: tokenRequestBuilder.setGrantType(GrantType.AUTHORIZATION_CODE); @@ -221,6 +234,32 @@ public class RetryingOAuth extends OAuth implements Interceptor { return getAccessToken() == null || !getAccessToken().equals(requestAccessToken); } + /** + * Gets the token URL used to acquire access tokens for this OAuth2 flow. + * + * @return The token URL + */ + public String getTokenUrl() { + return tokenUrl; + } + + /** + * Sets the token URL used to acquire access tokens for this OAuth2 flow. + * Any access token acquired from the previous token URL is discarded, so the + * next request will acquire a new one from the given endpoint. + * + * @param tokenUrl The token URL. The value must be an absolute URL. + * @throws java.lang.IllegalArgumentException If the token URL is not an absolute URL + */ + public synchronized void setTokenUrl(String tokenUrl) { + if (tokenUrl == null || "".equals(tokenUrl) || !URI.create(tokenUrl).isAbsolute()) { + throw new IllegalArgumentException("OAuth2 token URL must be an absolute URL"); + } + this.tokenUrl = tokenUrl; + buildTokenRequest(); + setAccessToken(null); + } + /** * Gets the token request builder * diff --git a/src/main/java/com/bandwidth/sdk/ApiClient.java b/src/main/java/com/bandwidth/sdk/ApiClient.java index 3ca68245..09f2cef3 100644 --- a/src/main/java/com/bandwidth/sdk/ApiClient.java +++ b/src/main/java/com/bandwidth/sdk/ApiClient.java @@ -593,6 +593,24 @@ public void setAccessToken(String accessToken) { throw new RuntimeException("No OAuth2 authentication configured!"); } + /** + * Helper method to set the token URL for the first OAuth2 authentication. + * Any access token acquired from the previous token URL is discarded, so the + * next request will acquire a new one from the given endpoint. + * + * @param tokenUrl The token URL. The value must be an absolute URL. + * @throws java.lang.IllegalArgumentException If the token URL is not an absolute URL + */ + public void setTokenUrl(String tokenUrl) { + for (Authentication auth : authentications.values()) { + if (auth instanceof RetryingOAuth) { + ((RetryingOAuth) auth).setTokenUrl(tokenUrl); + return; + } + } + throw new RuntimeException("No OAuth2 authentication configured!"); + } + /** * Helper method to set credentials for AWSV4 Signature * diff --git a/src/main/java/com/bandwidth/sdk/auth/RetryingOAuth.java b/src/main/java/com/bandwidth/sdk/auth/RetryingOAuth.java index 77dd6d98..3081ed04 100644 --- a/src/main/java/com/bandwidth/sdk/auth/RetryingOAuth.java +++ b/src/main/java/com/bandwidth/sdk/auth/RetryingOAuth.java @@ -45,6 +45,10 @@ public class RetryingOAuth extends OAuth implements Interceptor { private String clientId; private String clientSecret; + private String tokenUrl; + private OAuthFlow flow; + private Map parameters; + /** * @param client An OkHttp client * @param tokenRequestBuilder A token request builder @@ -80,12 +84,10 @@ public RetryingOAuth( this(OAuthClientRequest.tokenLocation(tokenUrl)); this.clientId = clientId; this.clientSecret = clientSecret; - setFlow(flow); - if (parameters != null) { - for (Map.Entry entry : parameters.entrySet()) { - tokenRequestBuilder.setParameter(entry.getKey(), entry.getValue()); - } - } + this.tokenUrl = tokenUrl; + this.flow = flow; + this.parameters = parameters; + buildTokenRequest(); } /** @@ -109,7 +111,17 @@ public RetryingOAuth( this(client, OAuthClientRequest.tokenLocation(tokenUrl)); this.clientId = clientId; this.clientSecret = clientSecret; - setFlow(flow); + this.tokenUrl = tokenUrl; + this.flow = flow; + this.parameters = parameters; + buildTokenRequest(); + } + + private void buildTokenRequest() { + this.tokenRequestBuilder = OAuthClientRequest.tokenLocation(tokenUrl); + if (flow != null) { + setFlow(flow); + } if (parameters != null) { for (Map.Entry entry : parameters.entrySet()) { tokenRequestBuilder.setParameter(entry.getKey(), entry.getValue()); @@ -123,6 +135,7 @@ public RetryingOAuth( * @param flow The OAuth flow. */ public void setFlow(OAuthFlow flow) { + this.flow = flow; switch(flow) { case ACCESS_CODE: tokenRequestBuilder.setGrantType(GrantType.AUTHORIZATION_CODE); @@ -231,6 +244,32 @@ public synchronized boolean updateAccessToken(String requestAccessToken) throws return getAccessToken() == null || !getAccessToken().equals(requestAccessToken); } + /** + * Gets the token URL used to acquire access tokens for this OAuth2 flow. + * + * @return The token URL + */ + public String getTokenUrl() { + return tokenUrl; + } + + /** + * Sets the token URL used to acquire access tokens for this OAuth2 flow. + * Any access token acquired from the previous token URL is discarded, so the + * next request will acquire a new one from the given endpoint. + * + * @param tokenUrl The token URL. The value must be an absolute URL. + * @throws java.lang.IllegalArgumentException If the token URL is not an absolute URL + */ + public synchronized void setTokenUrl(String tokenUrl) { + if (tokenUrl == null || "".equals(tokenUrl) || !URI.create(tokenUrl).isAbsolute()) { + throw new IllegalArgumentException("OAuth2 token URL must be an absolute URL"); + } + this.tokenUrl = tokenUrl; + buildTokenRequest(); + setAccessToken(null); + } + /** * Gets the token request builder * diff --git a/src/test/java/com/bandwidth/sdk/unit/api/ApiClientTest.java b/src/test/java/com/bandwidth/sdk/unit/api/ApiClientTest.java index 607d1eb5..8a0a8da2 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/ApiClientTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/ApiClientTest.java @@ -1,5 +1,6 @@ package com.bandwidth.sdk.unit.api; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import okhttp3.OkHttpClient; @@ -12,6 +13,7 @@ import static com.bandwidth.sdk.utils.TestingEnvironmentVariables.*; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.Matchers.hasKey; import static org.hamcrest.MatcherAssert.assertThat; @@ -65,6 +67,38 @@ public void testBasePathConfiguration() { assertThat(customBasePath, equalTo(client.getBasePath())); } + @Test + public void testSetTokenUrl() { + String customTokenUrl = "https://api.example.com/oauth2/token"; + ApiClient client = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null); + RetryingOAuth oauth = (RetryingOAuth) client.getAuthentication("OAuth2"); + + assertThat(oauth.getTokenUrl(), notNullValue()); + + client.setAccessToken("stale-access-token"); + client.setTokenUrl(customTokenUrl); + + assertThat(oauth.getTokenUrl(), equalTo(customTokenUrl)); + assertThat(oauth.getAccessToken(), nullValue()); + } + + @Test + public void testSetTokenUrlWithInvalidUrl() { + ApiClient client = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null); + + Assertions.assertThrows(IllegalArgumentException.class, () -> client.setTokenUrl("/oauth2/token")); + Assertions.assertThrows(IllegalArgumentException.class, () -> client.setTokenUrl(null)); + Assertions.assertThrows(IllegalArgumentException.class, () -> client.setTokenUrl("")); + } + + @Test + public void testSetTokenUrlWithoutOAuthConfigured() { + ApiClient client = new ApiClient(); + + Assertions.assertThrows(RuntimeException.class, + () -> client.setTokenUrl("https://api.example.com/oauth2/token")); + } + @Test public void testJsonGetter() { ApiClient client = new ApiClient(); diff --git a/src/test/java/com/bandwidth/sdk/unit/api/CallsApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/CallsApiTest.java index 95665674..c382d5a9 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/CallsApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/CallsApiTest.java @@ -44,6 +44,7 @@ public class CallsApiTest { @BeforeAll public static void setUp() { + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/ConferencesApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/ConferencesApiTest.java index 94ac58f9..f368c161 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/ConferencesApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/ConferencesApiTest.java @@ -40,6 +40,7 @@ public class ConferencesApiTest { @BeforeAll public static void setUp() { + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/EndpointsApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/EndpointsApiTest.java index 81f6f388..7f2f4c11 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/EndpointsApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/EndpointsApiTest.java @@ -39,6 +39,7 @@ public class EndpointsApiTest { @BeforeAll public static void setUp() { + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/MediaApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/MediaApiTest.java index 78aef00f..6e45fb84 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/MediaApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/MediaApiTest.java @@ -3,9 +3,7 @@ import com.bandwidth.sdk.ApiClient; import com.bandwidth.sdk.ApiException; import com.bandwidth.sdk.ApiResponse; -import com.bandwidth.sdk.Configuration; import com.bandwidth.sdk.api.MediaApi; -import com.bandwidth.sdk.auth.HttpBasicAuth; import com.bandwidth.sdk.model.Media; import static com.bandwidth.sdk.utils.TestingEnvironmentVariables.*; @@ -22,17 +20,15 @@ @SuppressWarnings("null") public class MediaApiTest { - private static ApiClient defaultClient = Configuration.getDefaultApiClient(); - private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic"); - private static MediaApi api = new MediaApi(defaultClient); + private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null); + private static MediaApi api = new MediaApi(oauthClient); private static File mediaData = new File("src/test/java/com/bandwidth/sdk/fixtures/java_cat.jpeg"); private static String mediaName = "java_binary_media"; @BeforeAll public static void setUp() { - Basic.setUsername(BW_USERNAME); - Basic.setPassword(BW_PASSWORD); + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/MessagesApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/MessagesApiTest.java index e95c8432..9b654f12 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/MessagesApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/MessagesApiTest.java @@ -7,9 +7,7 @@ import com.bandwidth.sdk.ApiClient; import com.bandwidth.sdk.ApiException; import com.bandwidth.sdk.ApiResponse; -import com.bandwidth.sdk.Configuration; import com.bandwidth.sdk.api.MessagesApi; -import com.bandwidth.sdk.auth.HttpBasicAuth; import com.bandwidth.sdk.model.ListMessageDirectionEnum; import com.bandwidth.sdk.model.ListMessageItem; import com.bandwidth.sdk.model.Message; @@ -33,9 +31,8 @@ @SuppressWarnings("null") public class MessagesApiTest { - public static ApiClient defaultClient = Configuration.getDefaultApiClient(); - public static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic"); - public static MessagesApi api = new MessagesApi(defaultClient); + public static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null); + public static MessagesApi api = new MessagesApi(oauthClient); private static String messageText = "Java SDK Test Message"; private static PriorityEnum messagePriority = PriorityEnum.HIGH; @@ -43,8 +40,7 @@ public class MessagesApiTest { @BeforeAll public static void setUp() { - Basic.setUsername(BW_USERNAME); - Basic.setPassword(BW_PASSWORD); + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/MfaApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/MfaApiTest.java index da214847..c8d0beba 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/MfaApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/MfaApiTest.java @@ -6,9 +6,7 @@ import com.bandwidth.sdk.ApiClient; import com.bandwidth.sdk.ApiException; import com.bandwidth.sdk.ApiResponse; -import com.bandwidth.sdk.Configuration; import com.bandwidth.sdk.api.MfaApi; -import com.bandwidth.sdk.auth.HttpBasicAuth; import com.bandwidth.sdk.model.CodeRequest; import com.bandwidth.sdk.model.MessagingCodeResponse; import com.bandwidth.sdk.model.VerifyCodeRequest; @@ -24,17 +22,15 @@ @SuppressWarnings("null") public class MfaApiTest { - private static ApiClient defaultClient = Configuration.getDefaultApiClient(); - private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic"); - private static MfaApi api = new MfaApi(defaultClient); + private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null); + private static MfaApi api = new MfaApi(oauthClient); private static String message = "Your temporary {NAME} {SCOPE} code is {CODE}"; private static Integer digits = 6; @BeforeAll public static void setUp() { - Basic.setUsername(BW_USERNAME); - Basic.setPassword(BW_PASSWORD); + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/MultiChannelApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/MultiChannelApiTest.java index 9196e9c7..cdf3247d 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/MultiChannelApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/MultiChannelApiTest.java @@ -3,9 +3,7 @@ import com.bandwidth.sdk.ApiClient; import com.bandwidth.sdk.ApiException; import com.bandwidth.sdk.ApiResponse; -import com.bandwidth.sdk.Configuration; import com.bandwidth.sdk.api.MultiChannelApi; -import com.bandwidth.sdk.auth.HttpBasicAuth; import com.bandwidth.sdk.model.CreateMultiChannelMessageResponse; import com.bandwidth.sdk.model.MessageDirectionEnum; import com.bandwidth.sdk.model.MultiChannelChannelListRequestObject; @@ -33,14 +31,12 @@ @SuppressWarnings("null") public class MultiChannelApiTest { - private static ApiClient defaultClient = Configuration.getDefaultApiClient(); - private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic"); - private static MultiChannelApi api = new MultiChannelApi(defaultClient); + private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null); + private static MultiChannelApi api = new MultiChannelApi(oauthClient); @BeforeAll public static void setUp() { - Basic.setUsername(BW_USERNAME); - Basic.setPassword(BW_PASSWORD); + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/PhoneNumberLookupApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/PhoneNumberLookupApiTest.java index 11d6d676..fca57386 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/PhoneNumberLookupApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/PhoneNumberLookupApiTest.java @@ -16,9 +16,7 @@ import com.bandwidth.sdk.ApiClient; import com.bandwidth.sdk.ApiException; import com.bandwidth.sdk.ApiResponse; -import com.bandwidth.sdk.Configuration; import com.bandwidth.sdk.api.PhoneNumberLookupApi; -import com.bandwidth.sdk.auth.HttpBasicAuth; import com.bandwidth.sdk.model.AsyncLookupRequest; import com.bandwidth.sdk.model.CompletedLookupStatusEnum; import com.bandwidth.sdk.model.CreateAsyncBulkLookupResponse; @@ -53,14 +51,12 @@ */ @SuppressWarnings("null") public class PhoneNumberLookupApiTest { - private static ApiClient defaultClient = Configuration.getDefaultApiClient(); - private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic"); - private static PhoneNumberLookupApi api = new PhoneNumberLookupApi(defaultClient); + private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null); + private static PhoneNumberLookupApi api = new PhoneNumberLookupApi(oauthClient); @BeforeAll public static void setUp() { - Basic.setUsername(BW_USERNAME); - Basic.setPassword(BW_PASSWORD); + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/RecordingsApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/RecordingsApiTest.java index 4bb04a73..faaa3396 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/RecordingsApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/RecordingsApiTest.java @@ -39,6 +39,7 @@ public class RecordingsApiTest { @BeforeAll public static void setUp() { + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/StatisticsApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/StatisticsApiTest.java index 754845e7..77257579 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/StatisticsApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/StatisticsApiTest.java @@ -21,6 +21,7 @@ public class StatisticsApiTest { @BeforeAll public static void setUp() { + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/TollFreeVerificationApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/TollFreeVerificationApiTest.java index 3aa6b326..4ab1c805 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/TollFreeVerificationApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/TollFreeVerificationApiTest.java @@ -18,9 +18,7 @@ import com.bandwidth.sdk.ApiClient; import com.bandwidth.sdk.ApiException; import com.bandwidth.sdk.ApiResponse; -import com.bandwidth.sdk.Configuration; import com.bandwidth.sdk.api.TollFreeVerificationApi; -import com.bandwidth.sdk.auth.HttpBasicAuth; import com.bandwidth.sdk.model.Address; import com.bandwidth.sdk.model.BusinessEntityTypeEnum; import com.bandwidth.sdk.model.BusinessRegistrationTypeEnum; @@ -51,9 +49,8 @@ @SuppressWarnings("null") public class TollFreeVerificationApiTest { - private static ApiClient defaultClient = Configuration.getDefaultApiClient(); - private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic"); - private static TollFreeVerificationApi api = new TollFreeVerificationApi(defaultClient); + private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null); + private static TollFreeVerificationApi api = new TollFreeVerificationApi(oauthClient); private static WebhookSubscriptionRequestSchema webhookSubscriptionRequestSchema = new WebhookSubscriptionRequestSchema() .basicAuthentication(new TfvBasicAuthentication() @@ -64,8 +61,7 @@ public class TollFreeVerificationApiTest { @BeforeAll public static void setUp() { - Basic.setUsername(BW_USERNAME); - Basic.setPassword(BW_PASSWORD); + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); } diff --git a/src/test/java/com/bandwidth/sdk/unit/api/TranscriptionsApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/TranscriptionsApiTest.java index 511c0458..5f2cae8b 100644 --- a/src/test/java/com/bandwidth/sdk/unit/api/TranscriptionsApiTest.java +++ b/src/test/java/com/bandwidth/sdk/unit/api/TranscriptionsApiTest.java @@ -30,6 +30,7 @@ public class TranscriptionsApiTest { @BeforeAll public static void setUp() { + oauthClient.setAccessToken("abcd1234"); api.setCustomBaseUrl("http://127.0.0.1:4010"); }