Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
MSAL lets you provide your own HTTP client for supporting fine grained configurations. To use a custom Http client, you'll need to implement IHttpClient
. This class, which we will class HttpClientAdapter
, should implement send
, which takes in the HttpRequest
composed by MSAL, executes it, and then constructs IHttpResponse
with the results of the execution.
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);
}
}
Once HttpClientAdapter
has been implemented, it can be set on the client application for which you would like to use it.
IHttpClient httpClient = new OkHttpClientAdapter();
PublicClientApplication pca = PublicClientApplication.builder(
APP_ID).
authority(AUTHORITY).
httpClient(httpClient).
build();
All HTTP requests will now be routed through httpClient
.