Java源码示例:org.apache.http.nio.conn.SchemeIOSessionStrategy

示例1
@Test
public void paramsArePassedToConfiguredObject() {

    // given
    JKSCertInfo certInfo = createTestCertInfoBuilder()
            .withKeystorePath(TEST_KEYSTORE_PATH)
            .withKeystorePassword(TEST_KEYSTORE_PASSWORD)
            .withTruststorePath(TEST_TRUSTSTORE_PATH)
            .withTruststorePassword(TEST_TRUSTSTORE_PASSWORD)
            .build();

    HttpClientConfig.Builder clientConfigBuilder = spy(createDefaultClientConfigBuilder());

    // when
    certInfo.applyTo(clientConfigBuilder);

    // then
    verify(clientConfigBuilder).httpsIOSessionStrategy((SchemeIOSessionStrategy) notNull());
    Assert.assertNotNull(clientConfigBuilder.build().getHttpsIOSessionStrategy());
}
 
示例2
@Test
public void paramsArePassedToConfiguredObject() {

    // given
    PEMCertInfo certInfo = createTestCertInfoBuilder()
            .withKeyPath(TEST_KEY_PATH)
            .withKeyPassphrase(TEST_KEY_PASSPHRASE)
            .withClientCertPath(TEST_CLIENT_CERT_PATH)
            .withCaPath(TEST_CA_PATH)
            .build();

    HttpClientConfig.Builder clientConfigBuilder = spy(createDefaultClientConfigBuilder());

    // when
    certInfo.applyTo(clientConfigBuilder);

    // then
    verify(clientConfigBuilder).httpsIOSessionStrategy((SchemeIOSessionStrategy) notNull());
    Assert.assertNotNull(clientConfigBuilder.build().getHttpsIOSessionStrategy());
}
 
示例3
@Test
public void paramsArePassedToConfiguredObject() {

    // given
    JKSCertInfo certInfo = createTestCertInfoBuilder()
            .withKeystorePath(TEST_KEYSTORE_PATH)
            .withKeystorePassword(TEST_KEYSTORE_PASSWORD)
            .withTruststorePath(TEST_TRUSTSTORE_PATH)
            .withTruststorePassword(TEST_TRUSTSTORE_PASSWORD)
            .build();

    HttpClientFactory.Builder httpClientFactoryBuilder = Mockito.spy(createDefaultHttpClientFactoryBuilder());

    // when
    certInfo.applyTo(httpClientFactoryBuilder);

    // then
    verify(httpClientFactoryBuilder).withHttpsIOSessionStrategy((SchemeIOSessionStrategy) notNull());
    Assert.assertNotNull(httpClientFactoryBuilder.build().httpsIOSessionStrategy);
}
 
示例4
@Test
public void paramsArePassedToConfiguredObject() {

    // given
    PEMCertInfo certInfo = createTestCertInfoBuilder()
            .withKeyPath(TEST_KEY_PATH)
            .withKeyPassphrase(TEST_KEY_PASSPHRASE)
            .withClientCertPath(TEST_CLIENT_CERT_PATH)
            .withCaPath(TEST_CA_PATH)
            .build();

    HttpClientFactory.Builder httpClientFactoryBuilder = spy(createDefaultTestObjectBuilder());

    // when
    certInfo.applyTo(httpClientFactoryBuilder);

    // then
    verify(httpClientFactoryBuilder).withHttpsIOSessionStrategy((SchemeIOSessionStrategy) notNull());
    Assert.assertNotNull(httpClientFactoryBuilder.build().httpIOSessionStrategy);
}
 
示例5
@Override
protected Registry<SchemeIOSessionStrategy> registry() {
    return RegistryBuilder
            .<SchemeIOSessionStrategy>create()
            .register("http", NoopIOSessionStrategy.INSTANCE)
            .register("https", buildSSLIOSessionStrategy())
            .build();
}
 
示例6
Registry<SchemeIOSessionStrategy> createSchemeIOSessionStrategyRegistry() {
    HttpClientConfig httpClientConfig = wrappedHttpClientConfig.getHttpClientConfig();
    return RegistryBuilder.<SchemeIOSessionStrategy>create()
                .register("http", httpClientConfig.getHttpIOSessionStrategy())
                .register("https", httpClientConfig.getHttpsIOSessionStrategy())
                .build();
}
 
示例7
private Registry<SchemeIOSessionStrategy> asyncRegistry() throws Exception {
    // Allow TLSv1 protocol only
    SSLIOSessionStrategy sslSessionStrategy = new SSLIOSessionStrategy(
            sslContext(),
            new String[] { "TLSv1" },
            null,
            hostnameVerifier());

    // Create a registry of custom connection session strategies for supported
    // protocol schemes.
    return RegistryBuilder.<SchemeIOSessionStrategy>create()
            .register("http", NoopIOSessionStrategy.INSTANCE)
            .register("https", sslSessionStrategy)
            .build();
}
 
示例8
/**
 * Configures the SSL connection to use certificates by setting the keystores
 * @param httpConfig the http client configuration
 * @param config the configuration
 */
@SuppressWarnings("nls")
private void updateSslConfig(Builder httpConfig, Map<String, String> config) {
    try {
        String clientKeystorePath = config.get("client.keystore");
        String clientKeystorePassword = config.get("client.keystore.password");
        String trustStorePath = config.get("client.truststore");
        String trustStorePassword = config.get("client.truststore.password");

        SSLContextBuilder sslContextBuilder = SSLContextBuilder.create();

        String trustCertificate = config.get("client.trust.certificate");
        if (!StringUtils.isBlank(trustCertificate) && trustCertificate.equals("true")) {
            sslContextBuilder = sslContextBuilder.loadTrustMaterial(new TrustSelfSignedStrategy());
        }

        SSLContext sslContext = sslContextBuilder.build();
        Info kPathInfo = new Info(clientKeystorePath, clientKeystorePassword);
        Info tPathInfo = new Info(trustStorePath, trustStorePassword);
        sslContext.init(KeyStoreUtil.getKeyManagers(kPathInfo), KeyStoreUtil.getTrustManagers(tPathInfo), new SecureRandom());

        String trustHost = config.get("client.trust.host");
        HostnameVerifier hostnameVerifier = !StringUtils.isBlank(trustHost) && trustHost.equals("true") ? NoopHostnameVerifier.INSTANCE : new DefaultHostnameVerifier();

        SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslContext, hostnameVerifier);
        SchemeIOSessionStrategy httpsIOSessionStrategy = new SSLIOSessionStrategy(sslContext, hostnameVerifier);

        httpConfig.defaultSchemeForDiscoveredNodes("https");
        httpConfig.sslSocketFactory(sslSocketFactory); // for sync calls
        httpConfig.httpsIOSessionStrategy(httpsIOSessionStrategy); // for async calls

    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
 
示例9
protected static Registry<SchemeIOSessionStrategy> getDefaultRegistry() {
    return RegistryBuilder.<SchemeIOSessionStrategy>create().register("http", NoopIOSessionStrategy.INSTANCE)
            .register("https", SSLIOSessionStrategy.getDefaultStrategy()).build();
}
 
示例10
@Test
public void registryBuilderUsesProvidedHttpIOSessionStrategy() {

    // given
    HttpClientConfig.Builder httpClientConfigBuilder = createDefaultTestHttpClientConfigBuilder();

    SchemeIOSessionStrategy expectedSchemeIOSessionStrategy = mock(SchemeIOSessionStrategy.class);
    httpClientConfigBuilder.httpIOSessionStrategy(expectedSchemeIOSessionStrategy);

    WrappedHttpClientConfig.Builder builder = createDefaultTestWrappedHttpClientConfigBuilder(httpClientConfigBuilder.build());
    ExtendedJestClientFactory factory = new ExtendedJestClientFactory(builder.build());

    // when
    Registry<SchemeIOSessionStrategy> registry = factory.createSchemeIOSessionStrategyRegistry();

    // then
    assertEquals(expectedSchemeIOSessionStrategy, registry.lookup("http"));

}
 
示例11
@Test
public void registryBuilderUsesProvidedHttpsIOSessionStrategy() {

    // given
    HttpClientConfig.Builder httpClientConfigBuilder = createDefaultTestHttpClientConfigBuilder();

    SchemeIOSessionStrategy expectedSchemeIOSessionStrategy = mock(SchemeIOSessionStrategy.class);
    httpClientConfigBuilder.httpsIOSessionStrategy(expectedSchemeIOSessionStrategy);

    WrappedHttpClientConfig.Builder builder = createDefaultTestWrappedHttpClientConfigBuilder(httpClientConfigBuilder.build());
    ExtendedJestClientFactory factory = new ExtendedJestClientFactory(builder.build());

    // when
    Registry<SchemeIOSessionStrategy> registry = factory.createSchemeIOSessionStrategyRegistry();

    // then
    assertEquals(expectedSchemeIOSessionStrategy, registry.lookup("https"));

}
 
示例12
Registry<SchemeIOSessionStrategy> createSchemeIOSessionStrategyRegistry() {
    return RegistryBuilder.<SchemeIOSessionStrategy>create()
            .register("http", httpIOSessionStrategy)
            .register("https", httpsIOSessionStrategy)
            .build();
}
 
示例13
public Builder withHttpIOSessionStrategy(SchemeIOSessionStrategy httpIOSessionStrategy) {
    this.httpIOSessionStrategy = httpIOSessionStrategy;
    return this;
}
 
示例14
public Builder withHttpsIOSessionStrategy(SchemeIOSessionStrategy httpsIOSessionStrategy) {
    this.httpsIOSessionStrategy = httpsIOSessionStrategy;
    return this;
}
 
示例15
@Test
public void builderSetsAllFields() {

    HttpClientFactory.Builder builder = new HttpClientFactory.Builder();

    ConnectionSocketFactory plainSocketFactory = mock(ConnectionSocketFactory.class);
    LayeredConnectionSocketFactory sslSocketFactory = mock(LayeredConnectionSocketFactory.class);
    SchemeIOSessionStrategy httpIOSessionStrategy = mock(SchemeIOSessionStrategy.class);
    SchemeIOSessionStrategy httpsIOSessionStrategy = mock(SchemeIOSessionStrategy.class);
    CredentialsProvider credentialsProvider = mock(CredentialsProvider.class);

    builder.withServerList(TEST_SERVER_LIST)
            .withConnTimeout(TEST_CONNECTION_TIMEOUT)
            .withReadTimeout(TEST_READ_TIMEOUT)
            .withMaxTotalConnections(TEST_MAX_TOTAL_CONNECTIONS)
            .withIoThreadCount(TEST_IO_THREAD_COUNT)
            .withPooledResponseBuffers(TEST_POOLED_RESPONSE_BUFFERS_ENABLED)
            .withPooledResponseBuffersSizeInBytes(TEST_POOLED_RESPONSE_BUFFERS_SIZE_IN_BYTES)
            .withPlainSocketFactory(plainSocketFactory)
            .withSslSocketFactory(sslSocketFactory)
            .withHttpIOSessionStrategy(httpIOSessionStrategy)
            .withHttpsIOSessionStrategy(httpsIOSessionStrategy)
            .withDefaultCredentialsProvider(credentialsProvider);

    // when
    HttpClientFactory httpClientFactory = builder.build();

    // then
    assertEquals(TEST_SERVER_LIST, httpClientFactory.serverList);
    assertEquals(TEST_CONNECTION_TIMEOUT, httpClientFactory.connTimeout);
    assertEquals(TEST_READ_TIMEOUT, httpClientFactory.readTimeout);
    assertEquals(TEST_MAX_TOTAL_CONNECTIONS, httpClientFactory.maxTotalConnections);
    assertEquals(TEST_IO_THREAD_COUNT, httpClientFactory.ioThreadCount);
    assertEquals(TEST_POOLED_RESPONSE_BUFFERS_ENABLED, httpClientFactory.pooledResponseBuffersEnabled);
    assertEquals(TEST_POOLED_RESPONSE_BUFFERS_SIZE_IN_BYTES, httpClientFactory.pooledResponseBuffersSizeInBytes);
    assertEquals(plainSocketFactory, httpClientFactory.plainSocketFactory);
    assertEquals(sslSocketFactory, httpClientFactory.sslSocketFactory);
    assertEquals(httpIOSessionStrategy, httpClientFactory.httpIOSessionStrategy);
    assertEquals(httpsIOSessionStrategy, httpClientFactory.httpsIOSessionStrategy);
    assertEquals(credentialsProvider, httpClientFactory.defaultCredentialsProvider);

}
 
示例16
@Test
public void builderSetsDefaultFields() {

    HttpClientFactory.Builder builder = new HttpClientFactory.Builder();

    ConnectionSocketFactory plainSocketFactory = mock(ConnectionSocketFactory.class);
    LayeredConnectionSocketFactory sslSocketFactory = mock(LayeredConnectionSocketFactory.class);
    SchemeIOSessionStrategy httpIOSessionStrategy = mock(SchemeIOSessionStrategy.class);
    SchemeIOSessionStrategy httpsIOSessionStrategy = mock(SchemeIOSessionStrategy.class);
    CredentialsProvider credentialsProvider = mock(CredentialsProvider.class);

    builder.withServerList(TEST_SERVER_LIST)
            .withConnTimeout(TEST_CONNECTION_TIMEOUT)
            .withReadTimeout(TEST_READ_TIMEOUT)
            .withMaxTotalConnections(TEST_MAX_TOTAL_CONNECTIONS)
            .withIoThreadCount(TEST_IO_THREAD_COUNT)
            .withPooledResponseBuffers(TEST_POOLED_RESPONSE_BUFFERS_ENABLED)
            .withPooledResponseBuffersSizeInBytes(TEST_POOLED_RESPONSE_BUFFERS_SIZE_IN_BYTES)
            .withPlainSocketFactory(plainSocketFactory)
            .withSslSocketFactory(sslSocketFactory)
            .withHttpIOSessionStrategy(httpIOSessionStrategy)
            .withHttpsIOSessionStrategy(httpsIOSessionStrategy)
            .withDefaultCredentialsProvider(credentialsProvider);

    // when
    HttpClientFactory httpClientFactory = builder.build();

    // then
    assertEquals(TEST_SERVER_LIST, httpClientFactory.serverList);
    assertEquals(TEST_CONNECTION_TIMEOUT, httpClientFactory.connTimeout);
    assertEquals(TEST_READ_TIMEOUT, httpClientFactory.readTimeout);
    assertEquals(TEST_MAX_TOTAL_CONNECTIONS, httpClientFactory.maxTotalConnections);
    assertEquals(TEST_IO_THREAD_COUNT, httpClientFactory.ioThreadCount);
    assertEquals(TEST_POOLED_RESPONSE_BUFFERS_ENABLED, httpClientFactory.pooledResponseBuffersEnabled);
    assertEquals(TEST_POOLED_RESPONSE_BUFFERS_SIZE_IN_BYTES, httpClientFactory.pooledResponseBuffersSizeInBytes);
    assertNotNull(httpClientFactory.plainSocketFactory);
    assertNotNull(httpClientFactory.sslSocketFactory);
    assertNotNull(httpClientFactory.httpIOSessionStrategy);
    assertNotNull(httpClientFactory.httpsIOSessionStrategy);
    assertNotNull(httpClientFactory.defaultCredentialsProvider);

}