Configurer un client HTTP personnalisé

MSAL vous permet de fournir votre propre client HTTP pour prendre en charge des configurations affinées. Pour utiliser un client Http personnalisé, vous devez implémenter IHttpClient. Cette classe, que nous appellerons HttpClientAdapter, doit implémenter send, qui prend en entrée HttpRequest généré par MSAL, l’exécute, puis construit IHttpResponse avec les résultats de l’exécution.

class OkHttpClientAdapter implements IHttpClient{

    private OkHttpClient client;

    OkHttpClientAdapter(){

        // You can configure OkHttpClient 
        this.client = new OkHttpClient();  
    }

    @Override
    public IHttpResponse send(HttpRequest httpRequest) throws IOException {
        
        // Map URL, headers, and body from MSAL's HttpRequest to OkHttpClient request object  
        Request request = buildOkRequestFromMsalRequest(httpRequest);

        // Execute Http request with OkHttpClient
        Response okHttpResponse= client.newCall(request).execute();
     
        // Map status code, headers, and response body from OkHttpClient's Response object to MSAL's IHttpResponse
        return buildMsalResponseFromOkResponse(okHttpResponse);
    }
}

Une fois HttpClientAdapter implémenté, il peut être défini sur l’application cliente pour laquelle vous souhaitez l’utiliser.

IHttpClient httpClient = new OkHttpClientAdapter();
PublicClientApplication pca = PublicClientApplication.builder(
        APP_ID).
        authority(AUTHORITY).
        httpClient(httpClient).
        build();

Toutes les requêtes HTTP seront désormais routées via httpClient.