All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.microsoft.graph.httpcore.AuthenticationHandler Maven / Gradle / Ivy

package com.microsoft.graph.httpcore;

import java.io.IOException;

import com.microsoft.graph.httpcore.middlewareoption.MiddlewareType;
import com.microsoft.graph.httpcore.middlewareoption.TelemetryOptions;

import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;

public class AuthenticationHandler implements Interceptor {
	
	public final MiddlewareType MIDDLEWARE_TYPE = MiddlewareType.AUTHENTICATION;

	private ICoreAuthenticationProvider authProvider;
	
	public AuthenticationHandler(ICoreAuthenticationProvider authProvider) {
		this.authProvider = authProvider;
	}

	@Override
	public Response intercept(Chain chain) throws IOException {
		Request originalRequest = chain.request();
		
		if(originalRequest.tag(TelemetryOptions.class) == null)
			originalRequest = originalRequest.newBuilder().tag(TelemetryOptions.class, new TelemetryOptions()).build();
		originalRequest.tag(TelemetryOptions.class).setFeatureUsage(TelemetryOptions.AUTH_HANDLER_ENABLED_FLAG);
		
		Request authenticatedRequest = authProvider.authenticateRequest(originalRequest);
		return chain.proceed(authenticatedRequest);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy