Search in sources :

Example 1 with HttpOptions

use of com.auth0.client.HttpOptions in project auth0-java by auth0.

the class ManagementAPI method buildNetworkingClient.

/**
 * Given a set of options, it creates a new instance of the {@link OkHttpClient}
 * configuring them according to their availability.
 *
 * @param options the options to set to the client.
 * @return a new networking client instance configured as requested.
 */
private OkHttpClient buildNetworkingClient(HttpOptions options) {
    OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
    final ProxyOptions proxyOptions = options.getProxyOptions();
    if (proxyOptions != null) {
        // Set proxy
        clientBuilder.proxy(proxyOptions.getProxy());
        // Set authentication, if present
        final String proxyAuth = proxyOptions.getBasicAuthentication();
        if (proxyAuth != null) {
            clientBuilder.proxyAuthenticator(new Authenticator() {

                private static final String PROXY_AUTHORIZATION_HEADER = "Proxy-Authorization";

                @Override
                public okhttp3.Request authenticate(Route route, Response response) throws IOException {
                    if (response.request().header(PROXY_AUTHORIZATION_HEADER) != null) {
                        return null;
                    }
                    return response.request().newBuilder().header(PROXY_AUTHORIZATION_HEADER, proxyAuth).build();
                }
            });
        }
    }
    configureLogging(options.getLoggingOptions());
    Dispatcher dispatcher = new Dispatcher();
    dispatcher.setMaxRequestsPerHost(options.getMaxRequestsPerHost());
    dispatcher.setMaxRequests(options.getMaxRequests());
    return clientBuilder.addInterceptor(logging).addInterceptor(telemetry).addInterceptor(new RateLimitInterceptor(options.getManagementAPIMaxRetries())).connectTimeout(options.getConnectTimeout(), TimeUnit.SECONDS).readTimeout(options.getReadTimeout(), TimeUnit.SECONDS).dispatcher(dispatcher).build();
}
Also used : ProxyOptions(com.auth0.client.ProxyOptions) IOException(java.io.IOException) RateLimitInterceptor(com.auth0.net.RateLimitInterceptor)

Example 2 with HttpOptions

use of com.auth0.client.HttpOptions in project auth0-java by auth0.

the class ManagementAPITest method shouldConfigureBodyLoggingFromOptions.

@Test
public void shouldConfigureBodyLoggingFromOptions() {
    LoggingOptions loggingOptions = new LoggingOptions(LoggingOptions.LogLevel.BODY);
    Set<String> headersToRedact = new HashSet<>();
    headersToRedact.add("Authorization");
    headersToRedact.add("Cookie");
    loggingOptions.setHeadersToRedact(headersToRedact);
    HttpOptions options = new HttpOptions();
    options.setLoggingOptions(loggingOptions);
    ManagementAPI api = new ManagementAPI(DOMAIN, API_TOKEN, options);
    assertThat(api.getClient().interceptors(), hasItem(isA(HttpLoggingInterceptor.class)));
    for (Interceptor i : api.getClient().interceptors()) {
        if (i instanceof HttpLoggingInterceptor) {
            HttpLoggingInterceptor logging = (HttpLoggingInterceptor) i;
            assertThat(logging.getLevel(), is(Level.BODY));
        }
    }
}
Also used : HttpOptions(com.auth0.client.HttpOptions) LoggingOptions(com.auth0.client.LoggingOptions) TelemetryInterceptor(com.auth0.net.TelemetryInterceptor) RateLimitInterceptor(com.auth0.net.RateLimitInterceptor) HttpLoggingInterceptor(okhttp3.logging.HttpLoggingInterceptor) HttpLoggingInterceptor(okhttp3.logging.HttpLoggingInterceptor) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 3 with HttpOptions

use of com.auth0.client.HttpOptions in project auth0-java by auth0.

the class ManagementAPITest method shouldConfigureNoneLoggingFromOptions.

@Test
public void shouldConfigureNoneLoggingFromOptions() {
    LoggingOptions loggingOptions = new LoggingOptions(LoggingOptions.LogLevel.NONE);
    HttpOptions options = new HttpOptions();
    options.setLoggingOptions(loggingOptions);
    ManagementAPI api = new ManagementAPI(DOMAIN, API_TOKEN, options);
    assertThat(api.getClient().interceptors(), hasItem(isA(HttpLoggingInterceptor.class)));
    for (Interceptor i : api.getClient().interceptors()) {
        if (i instanceof HttpLoggingInterceptor) {
            HttpLoggingInterceptor logging = (HttpLoggingInterceptor) i;
            assertThat(logging.getLevel(), is(Level.NONE));
        }
    }
}
Also used : HttpOptions(com.auth0.client.HttpOptions) LoggingOptions(com.auth0.client.LoggingOptions) TelemetryInterceptor(com.auth0.net.TelemetryInterceptor) RateLimitInterceptor(com.auth0.net.RateLimitInterceptor) HttpLoggingInterceptor(okhttp3.logging.HttpLoggingInterceptor) HttpLoggingInterceptor(okhttp3.logging.HttpLoggingInterceptor) Test(org.junit.Test)

Example 4 with HttpOptions

use of com.auth0.client.HttpOptions in project auth0-java by auth0.

the class ManagementAPITest method shouldThrowOnInValidMaxRequestsPerHostConfiguration.

@Test
public void shouldThrowOnInValidMaxRequestsPerHostConfiguration() {
    exception.expect(IllegalArgumentException.class);
    exception.expectMessage("maxRequestsPerHost must be one or greater.");
    HttpOptions options = new HttpOptions();
    options.setMaxRequestsPerHost(0);
}
Also used : HttpOptions(com.auth0.client.HttpOptions) Test(org.junit.Test)

Example 5 with HttpOptions

use of com.auth0.client.HttpOptions in project auth0-java by auth0.

the class ManagementAPITest method shouldThrowOnInValidMaxRequestsConfiguration.

@Test
public void shouldThrowOnInValidMaxRequestsConfiguration() {
    exception.expect(IllegalArgumentException.class);
    exception.expectMessage("maxRequests must be one or greater.");
    HttpOptions options = new HttpOptions();
    options.setMaxRequests(0);
}
Also used : HttpOptions(com.auth0.client.HttpOptions) Test(org.junit.Test)

Aggregations

HttpOptions (com.auth0.client.HttpOptions)31 Test (org.junit.Test)29 HttpLoggingInterceptor (okhttp3.logging.HttpLoggingInterceptor)9 LoggingOptions (com.auth0.client.LoggingOptions)8 ProxyOptions (com.auth0.client.ProxyOptions)8 RateLimitInterceptor (com.auth0.net.RateLimitInterceptor)6 Proxy (java.net.Proxy)6 okhttp3 (okhttp3)6 TelemetryInterceptor (com.auth0.net.TelemetryInterceptor)5 Request (com.auth0.net.Request)3 IOException (java.io.IOException)2 HashSet (java.util.HashSet)2 RecordedRequest (okhttp3.mockwebserver.RecordedRequest)2 Test (org.junit.jupiter.api.Test)2 PasswordlessEmailResponse (com.auth0.json.auth.PasswordlessEmailResponse)1 PasswordlessSmsResponse (com.auth0.json.auth.PasswordlessSmsResponse)1