Search in sources :

Example 6 with Client

use of javax.ws.rs.client.Client in project dropwizard by dropwizard.

the class JerseyClientBuilder method build.

private Client build(String name, ExecutorService threadPool, ObjectMapper objectMapper, Validator validator) {
    if (!configuration.isGzipEnabled()) {
        apacheHttpClientBuilder.disableContentCompression(true);
    }
    final Client client = ClientBuilder.newClient(buildConfig(name, threadPool, objectMapper, validator));
    client.register(new JerseyIgnoreRequestUserAgentHeaderFilter());
    // Tie the client to server lifecycle
    if (environment != null) {
        environment.lifecycle().manage(new Managed() {

            @Override
            public void start() throws Exception {
            }

            @Override
            public void stop() throws Exception {
                client.close();
            }
        });
    }
    if (configuration.isGzipEnabled()) {
        client.register(new GZipDecoder());
        client.register(new ConfiguredGZipEncoder(configuration.isGzipEnabledForRequests()));
    }
    return client;
}
Also used : ConfiguredGZipEncoder(io.dropwizard.jersey.gzip.ConfiguredGZipEncoder) GZipDecoder(io.dropwizard.jersey.gzip.GZipDecoder) Client(javax.ws.rs.client.Client) RxClient(org.glassfish.jersey.client.rx.RxClient) Managed(io.dropwizard.lifecycle.Managed)

Example 7 with Client

use of javax.ws.rs.client.Client in project dropwizard by dropwizard.

the class DropwizardSSLConnectionSocketFactoryTest method shouldBeOkIfHostnameVerificationOffAndServerHostnameDoesntMatch.

@Test
public void shouldBeOkIfHostnameVerificationOffAndServerHostnameDoesntMatch() throws Exception {
    tlsConfiguration.setVerifyHostname(false);
    final Client client = new JerseyClientBuilder(TLS_APP_RULE.getEnvironment()).using(jerseyClientConfiguration).build("bad_host_working");
    final Response response = client.target(String.format("https://localhost:%d", TLS_APP_RULE.getPort(3))).request().get();
    assertThat(response.getStatus()).isEqualTo(200);
}
Also used : ClientResponse(org.glassfish.jersey.client.ClientResponse) Response(javax.ws.rs.core.Response) Client(javax.ws.rs.client.Client) JerseyClientBuilder(io.dropwizard.client.JerseyClientBuilder) Test(org.junit.Test)

Example 8 with Client

use of javax.ws.rs.client.Client in project dropwizard by dropwizard.

the class DropwizardSSLConnectionSocketFactoryTest method shouldReturn200IfServerCertInTruststore.

@Test
public void shouldReturn200IfServerCertInTruststore() throws Exception {
    final Client client = new JerseyClientBuilder(TLS_APP_RULE.getEnvironment()).using(jerseyClientConfiguration).build("tls_working_client");
    final Response response = client.target(String.format("https://localhost:%d", TLS_APP_RULE.getLocalPort())).request().get();
    assertThat(response.getStatus()).isEqualTo(200);
}
Also used : ClientResponse(org.glassfish.jersey.client.ClientResponse) Response(javax.ws.rs.core.Response) Client(javax.ws.rs.client.Client) JerseyClientBuilder(io.dropwizard.client.JerseyClientBuilder) Test(org.junit.Test)

Example 9 with Client

use of javax.ws.rs.client.Client in project dropwizard by dropwizard.

the class DropwizardSSLConnectionSocketFactoryTest method shouldErrorIfServerCertSelfSignedAndSelfSignedCertsNotAllowed.

@Test
public void shouldErrorIfServerCertSelfSignedAndSelfSignedCertsNotAllowed() throws Exception {
    final Client client = new JerseyClientBuilder(TLS_APP_RULE.getEnvironment()).using(jerseyClientConfiguration).build("self_sign_failure");
    assertThatThrownBy(() -> client.target(String.format("https://localhost:%d", TLS_APP_RULE.getPort(1))).request().get(ClientResponse.class)).isInstanceOf(ProcessingException.class).hasCauseInstanceOf(SSLHandshakeException.class);
}
Also used : ClientResponse(org.glassfish.jersey.client.ClientResponse) Client(javax.ws.rs.client.Client) JerseyClientBuilder(io.dropwizard.client.JerseyClientBuilder) ProcessingException(javax.ws.rs.ProcessingException) Test(org.junit.Test)

Example 10 with Client

use of javax.ws.rs.client.Client in project dropwizard by dropwizard.

the class DropwizardSSLConnectionSocketFactoryTest method shouldReturn200IfAbleToClientAuth.

@Test
public void shouldReturn200IfAbleToClientAuth() throws Exception {
    tlsConfiguration.setKeyStorePath(new File(ResourceHelpers.resourceFilePath("stores/client/keycert.p12")));
    tlsConfiguration.setKeyStorePassword("password");
    tlsConfiguration.setKeyStoreType("PKCS12");
    final Client client = new JerseyClientBuilder(TLS_APP_RULE.getEnvironment()).using(jerseyClientConfiguration).build("client_auth_working");
    final Response response = client.target(String.format("https://localhost:%d", TLS_APP_RULE.getPort(2))).request().get();
    assertThat(response.getStatus()).isEqualTo(200);
}
Also used : ClientResponse(org.glassfish.jersey.client.ClientResponse) Response(javax.ws.rs.core.Response) Client(javax.ws.rs.client.Client) File(java.io.File) JerseyClientBuilder(io.dropwizard.client.JerseyClientBuilder) Test(org.junit.Test)

Aggregations

Client (javax.ws.rs.client.Client)227 Test (org.junit.Test)160 WebTarget (javax.ws.rs.client.WebTarget)96 Response (javax.ws.rs.core.Response)87 JerseyTest (org.glassfish.jersey.test.JerseyTest)76 ClientConfig (org.glassfish.jersey.client.ClientConfig)71 URL (java.net.URL)20 ClientResponse (org.glassfish.jersey.client.ClientResponse)19 JerseyClientBuilder (io.dropwizard.client.JerseyClientBuilder)18 Before (org.junit.Before)17 Invocation (javax.ws.rs.client.Invocation)15 ResourceConfig (org.glassfish.jersey.server.ResourceConfig)14 IOException (java.io.IOException)12 ProcessingException (javax.ws.rs.ProcessingException)12 HttpServer (org.glassfish.grizzly.http.server.HttpServer)10 URI (java.net.URI)9 JerseyClient (org.glassfish.jersey.client.JerseyClient)9 PrintWriter (java.io.PrintWriter)8 CountDownLatch (java.util.concurrent.CountDownLatch)8 SSLContext (javax.net.ssl.SSLContext)8