Search in sources :

Example 1 with CommunicationTokenCredential

use of com.azure.android.communication.common.CommunicationTokenCredential in project communication-services-android-calling-hero by Azure-Samples.

the class CallingContext method createTokenCredential.

// endregion
// region Private Methods
private void createTokenCredential() {
    final CommunicationTokenCredential credential = new CommunicationTokenCredential(new CommunicationTokenRefreshOptions(tokenFetcher, true));
    communicationUserCredentialCompletableFuture.complete(credential);
}
Also used : CommunicationTokenRefreshOptions(com.azure.android.communication.common.CommunicationTokenRefreshOptions) CommunicationTokenCredential(com.azure.android.communication.common.CommunicationTokenCredential)

Example 2 with CommunicationTokenCredential

use of com.azure.android.communication.common.CommunicationTokenCredential in project azure-sdk-for-android by Azure.

the class ChatThreadClientBuilder method createInternalClient.

private AzureCommunicationChatServiceImpl createInternalClient() {
    if (endpoint == null) {
        throw logger.logExceptionAsError(new NullPointerException("'endpoint' is required."));
    }
    HttpPipeline pipeline;
    if (this.httpPipeline != null) {
        pipeline = this.httpPipeline;
    } else {
        if (this.communicationTokenCredential == null) {
            throw logger.logExceptionAsError(new NullPointerException("CommunicationTokenCredential is required."));
        }
        HttpPipelinePolicy authorizationPolicy = chain -> {
            final CompletableFuture<CommunicationAccessToken> tokenFuture = this.communicationTokenCredential.getToken();
            final CommunicationAccessToken token;
            try {
                token = tokenFuture.get();
            } catch (ExecutionException e) {
                chain.completedError(e);
                return;
            } catch (InterruptedException e) {
                chain.completedError(e);
                return;
            }
            HttpRequest httpRequest = chain.getRequest();
            httpRequest.getHeaders().put("Authorization", "Bearer " + token.getToken());
            chain.processNextPolicy(httpRequest);
        };
        pipeline = createHttpPipeline(this.httpClient, authorizationPolicy, this.customPolicies);
    }
    AzureCommunicationChatServiceImplBuilder clientBuilder = new AzureCommunicationChatServiceImplBuilder().apiVersion((this.serviceVersion == null) ? ChatServiceVersion.getLatest().getVersion() : this.serviceVersion.getVersion()).endpoint(this.endpoint).pipeline(pipeline);
    return clientBuilder.buildClient();
}
Also used : AzureCommunicationChatServiceImplBuilder(com.azure.android.communication.chat.implementation.AzureCommunicationChatServiceImplBuilder) AzureCommunicationChatServiceImpl(com.azure.android.communication.chat.implementation.AzureCommunicationChatServiceImpl) VERSION_NAME(com.azure.android.communication.chat.BuildConfig.VERSION_NAME) RetryPolicy(com.azure.android.core.http.policy.RetryPolicy) ServiceClientBuilder(com.azure.android.core.rest.annotation.ServiceClientBuilder) UserAgentPolicy(com.azure.android.core.http.policy.UserAgentPolicy) CompletableFuture(java9.util.concurrent.CompletableFuture) ClientLogger(com.azure.android.core.logging.ClientLogger) ArrayList(java.util.ArrayList) ExecutionException(java.util.concurrent.ExecutionException) LIBRARY_PACKAGE_NAME(com.azure.android.communication.chat.BuildConfig.LIBRARY_PACKAGE_NAME) HttpPipelineBuilder(com.azure.android.core.http.HttpPipelineBuilder) HttpLoggingPolicy(com.azure.android.core.http.policy.HttpLoggingPolicy) List(java.util.List) HttpLogOptions(com.azure.android.core.http.policy.HttpLogOptions) HttpPipelinePolicy(com.azure.android.core.http.HttpPipelinePolicy) HttpPipeline(com.azure.android.core.http.HttpPipeline) CookiePolicy(com.azure.android.core.http.policy.CookiePolicy) CommunicationTokenCredential(com.azure.android.communication.common.CommunicationTokenCredential) HttpClient(com.azure.android.core.http.HttpClient) HttpRequest(com.azure.android.core.http.HttpRequest) CommunicationAccessToken(com.azure.android.communication.common.CommunicationAccessToken) CommunicationAccessToken(com.azure.android.communication.common.CommunicationAccessToken) HttpRequest(com.azure.android.core.http.HttpRequest) HttpPipelinePolicy(com.azure.android.core.http.HttpPipelinePolicy) CompletableFuture(java9.util.concurrent.CompletableFuture) AzureCommunicationChatServiceImplBuilder(com.azure.android.communication.chat.implementation.AzureCommunicationChatServiceImplBuilder) HttpPipeline(com.azure.android.core.http.HttpPipeline) ExecutionException(java.util.concurrent.ExecutionException)

Example 3 with CommunicationTokenCredential

use of com.azure.android.communication.common.CommunicationTokenCredential in project azure-sdk-for-android by Azure.

the class ChatClientBuilder method buildAsyncClient.

/**
 * Create asynchronous client applying CommunicationTokenCredential, UserAgentPolicy,
 * RetryPolicy, and CookiePolicy.
 * Additional HttpPolicies specified by additionalPolicies will be applied after them
 *
 * @throws NullPointerException if endpoint or CommunicationTokenCredential is not set.
 * @return A {@link ChatAsyncClient} instance.
 */
public ChatAsyncClient buildAsyncClient() {
    if (this.endpoint == null) {
        throw logger.logExceptionAsError(new NullPointerException("Endpoint is required."));
    }
    HttpPipeline pipeline;
    if (this.httpPipeline != null) {
        pipeline = this.httpPipeline;
    } else {
        if (this.communicationTokenCredential == null) {
            throw logger.logExceptionAsError(new NullPointerException("CommunicationTokenCredential is required."));
        }
        HttpPipelinePolicy authorizationPolicy = chain -> {
            final CompletableFuture<CommunicationAccessToken> tokenFuture = this.communicationTokenCredential.getToken();
            final CommunicationAccessToken token;
            try {
                token = tokenFuture.get();
            } catch (ExecutionException e) {
                chain.completedError(e);
                return;
            } catch (InterruptedException e) {
                chain.completedError(e);
                return;
            }
            HttpRequest httpRequest = chain.getRequest();
            httpRequest.getHeaders().put("Authorization", "Bearer " + token.getToken());
            chain.processNextPolicy(httpRequest);
        };
        pipeline = createHttpPipeline(this.httpClient, authorizationPolicy, this.customPolicies);
    }
    AzureCommunicationChatServiceImplBuilder clientBuilder = new AzureCommunicationChatServiceImplBuilder().apiVersion((this.serviceVersion == null) ? ChatServiceVersion.getLatest().getVersion() : this.serviceVersion.getVersion()).endpoint(this.endpoint).pipeline(pipeline);
    return new ChatAsyncClient(clientBuilder.buildClient(), this.communicationTokenCredential);
}
Also used : AzureCommunicationChatServiceImplBuilder(com.azure.android.communication.chat.implementation.AzureCommunicationChatServiceImplBuilder) VERSION_NAME(com.azure.android.communication.chat.BuildConfig.VERSION_NAME) RetryPolicy(com.azure.android.core.http.policy.RetryPolicy) ServiceClientBuilder(com.azure.android.core.rest.annotation.ServiceClientBuilder) UserAgentPolicy(com.azure.android.core.http.policy.UserAgentPolicy) CompletableFuture(java9.util.concurrent.CompletableFuture) ClientLogger(com.azure.android.core.logging.ClientLogger) ArrayList(java.util.ArrayList) ExecutionException(java.util.concurrent.ExecutionException) LIBRARY_PACKAGE_NAME(com.azure.android.communication.chat.BuildConfig.LIBRARY_PACKAGE_NAME) HttpPipelineBuilder(com.azure.android.core.http.HttpPipelineBuilder) HttpLoggingPolicy(com.azure.android.core.http.policy.HttpLoggingPolicy) List(java.util.List) HttpLogOptions(com.azure.android.core.http.policy.HttpLogOptions) HttpPipelinePolicy(com.azure.android.core.http.HttpPipelinePolicy) HttpPipeline(com.azure.android.core.http.HttpPipeline) CookiePolicy(com.azure.android.core.http.policy.CookiePolicy) CommunicationTokenCredential(com.azure.android.communication.common.CommunicationTokenCredential) HttpClient(com.azure.android.core.http.HttpClient) HttpRequest(com.azure.android.core.http.HttpRequest) CommunicationAccessToken(com.azure.android.communication.common.CommunicationAccessToken) CommunicationAccessToken(com.azure.android.communication.common.CommunicationAccessToken) HttpRequest(com.azure.android.core.http.HttpRequest) HttpPipelinePolicy(com.azure.android.core.http.HttpPipelinePolicy) CompletableFuture(java9.util.concurrent.CompletableFuture) AzureCommunicationChatServiceImplBuilder(com.azure.android.communication.chat.implementation.AzureCommunicationChatServiceImplBuilder) HttpPipeline(com.azure.android.core.http.HttpPipeline) ExecutionException(java.util.concurrent.ExecutionException)

Example 4 with CommunicationTokenCredential

use of com.azure.android.communication.common.CommunicationTokenCredential in project azure-sdk-for-android by Azure.

the class MainActivity method createChatAsyncClient.

public void createChatAsyncClient() {
    try {
        chatAsyncClient = new ChatClientBuilder().endpoint(endpoint).credential(new CommunicationTokenCredential(firstUserAccessToken)).addPolicy(new UserAgentPolicy(APPLICATION_ID, SDK_NAME, sdkVersion)).httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS).addAllowedHeaderName("MS-CV")).buildAsyncClient();
        Log.d(TAG, "Created ChatAsyncClient");
    } catch (Exception e) {
        Log.e("ChatAsyncClient creation failed", Objects.requireNonNull(e.getMessage()));
    }
}
Also used : ChatClientBuilder(com.azure.android.communication.chat.ChatClientBuilder) UserAgentPolicy(com.azure.android.core.http.policy.UserAgentPolicy) CommunicationTokenCredential(com.azure.android.communication.common.CommunicationTokenCredential) HttpLogOptions(com.azure.android.core.http.policy.HttpLogOptions) ExecutionException(java.util.concurrent.ExecutionException)

Example 5 with CommunicationTokenCredential

use of com.azure.android.communication.common.CommunicationTokenCredential in project azure-sdk-for-android by Azure.

the class ChatClientTestBase method getChatClientBuilder.

public ChatClientBuilder getChatClientBuilder(HttpClient httpClient) {
    ChatClientBuilder builder = new ChatClientBuilder();
    builder.endpoint(ENDPOINT).httpClient(httpClient == null ? interceptorManager.getPlaybackClient() : httpClient);
    if (interceptorManager.isPlaybackMode()) {
        builder.credential(new CommunicationTokenCredential(generateRawToken()));
        return builder;
    } else {
        builder.credential(new CommunicationTokenCredential(ACCESS_KEY));
    }
    if (getTestMode() == TestMode.RECORD) {
        builder.addPolicy(interceptorManager.getRecordPolicy());
    }
    return builder;
}
Also used : CommunicationTokenCredential(com.azure.android.communication.common.CommunicationTokenCredential)

Aggregations

CommunicationTokenCredential (com.azure.android.communication.common.CommunicationTokenCredential)5 HttpLogOptions (com.azure.android.core.http.policy.HttpLogOptions)3 UserAgentPolicy (com.azure.android.core.http.policy.UserAgentPolicy)3 ExecutionException (java.util.concurrent.ExecutionException)3 LIBRARY_PACKAGE_NAME (com.azure.android.communication.chat.BuildConfig.LIBRARY_PACKAGE_NAME)2 VERSION_NAME (com.azure.android.communication.chat.BuildConfig.VERSION_NAME)2 AzureCommunicationChatServiceImplBuilder (com.azure.android.communication.chat.implementation.AzureCommunicationChatServiceImplBuilder)2 CommunicationAccessToken (com.azure.android.communication.common.CommunicationAccessToken)2 HttpClient (com.azure.android.core.http.HttpClient)2 HttpPipeline (com.azure.android.core.http.HttpPipeline)2 HttpPipelineBuilder (com.azure.android.core.http.HttpPipelineBuilder)2 HttpPipelinePolicy (com.azure.android.core.http.HttpPipelinePolicy)2 HttpRequest (com.azure.android.core.http.HttpRequest)2 CookiePolicy (com.azure.android.core.http.policy.CookiePolicy)2 HttpLoggingPolicy (com.azure.android.core.http.policy.HttpLoggingPolicy)2 RetryPolicy (com.azure.android.core.http.policy.RetryPolicy)2 ClientLogger (com.azure.android.core.logging.ClientLogger)2 ServiceClientBuilder (com.azure.android.core.rest.annotation.ServiceClientBuilder)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2