private HttpConnector(Builder builder) { this.baseUrl = HttpUrl.parse(builder.url.endsWith("/") ? builder.url : format("%s/", builder.url)); checkArgument(this.baseUrl != null, "Malformed URL: '%s'", builder.url); OkHttpClientBuilder okHttpClientBuilder = new OkHttpClientBuilder(); okHttpClientBuilder.setUserAgent(builder.userAgent); if (!isNullOrEmpty(builder.login)) { // password is null when login represents an access token. In this case // the Basic credentials consider an empty password. okHttpClientBuilder.setCredentials(Credentials.basic(builder.login, nullToEmpty(builder.password), UTF_8)); } this.systemPassCode = builder.systemPassCode; okHttpClientBuilder.setProxy(builder.proxy); okHttpClientBuilder.setProxyLogin(builder.proxyLogin); okHttpClientBuilder.setProxyPassword(builder.proxyPassword); okHttpClientBuilder.setConnectTimeoutMs(builder.connectTimeoutMs); okHttpClientBuilder.setReadTimeoutMs(builder.readTimeoutMs); okHttpClientBuilder.setSSLSocketFactory(builder.sslSocketFactory); okHttpClientBuilder.setTrustManager(builder.sslTrustManager); this.okHttpClient = okHttpClientBuilder.build(); this.noRedirectOkHttpClient = newClientWithoutRedirect(this.okHttpClient); }
private static SSLSocketFactory systemDefaultSslSocketFactory(X509TrustManager trustManager) { KeyManager[] defaultKeyManager; try { defaultKeyManager = getDefaultKeyManager(); } catch (Exception e) { throw new IllegalStateException("Unable to get default key manager", e); } try { SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(defaultKeyManager, new TrustManager[] {trustManager}, null); return sslContext.getSocketFactory(); } catch (GeneralSecurityException e) { // The system has no TLS. Just give up. throw new AssertionError(e); } }
String defaultKeyStoreProvider = System.getProperty("javax.net.ssl.keyStoreProvider", ""); logDebug("keyStore is : " + defaultKeyStore); logDebug("keyStore type is : " + defaultKeyStoreType); logDebug("keyStore provider is : " + defaultKeyStoreProvider); logDebug("init keystore"); if (defaultKeyStoreProvider.isEmpty()) { ks = KeyStore.getInstance(defaultKeyStoreType); logDebug("init keymanager of type " + KeyManagerFactory.getDefaultAlgorithm()); KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
/** * @return a {@link OkHttpClient} singleton */ public OkHttpClient provide(Configuration config, SonarRuntime runtime) { if (okHttpClient == null) { OkHttpClientBuilder builder = new OkHttpClientBuilder(); builder.setConnectTimeoutMs(DEFAULT_CONNECT_TIMEOUT_IN_MS); builder.setReadTimeoutMs(DEFAULT_READ_TIMEOUT_IN_MS); // no need to define proxy URL as system-wide proxy is used and properly // configured by bootstrap process. builder.setProxyLogin(config.get(HTTP_PROXY_USER.getKey()).orElse(null)); builder.setProxyPassword(config.get(HTTP_PROXY_PASSWORD.getKey()).orElse(null)); builder.setUserAgent(format("SonarQube/%s", runtime.getApiVersion().toString())); okHttpClient = builder.build(); } return okHttpClient; } }
@Test public void build_with_custom_sslSocketFactory() { SSLSocketFactory sslSocketFactory = mock(SSLSocketFactory.class); OkHttpClient okHttpClient = underTest .setSSLSocketFactory(sslSocketFactory) .build(); assertThat(okHttpClient.sslSocketFactory()).isEqualTo(sslSocketFactory); }
@Test public void build_default_instance_of_OkHttpClient() { OkHttpClient okHttpClient = underTest.build(); assertThat(okHttpClient.proxy()).isNull(); assertThat(okHttpClient.networkInterceptors()).hasSize(1); assertThat(okHttpClient.sslSocketFactory()).isNotNull(); }
@Test public void build_throws_IAE_if_connect_timeout_is_negative() { expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Connect timeout must be positive. Got -10"); underTest.setConnectTimeoutMs(-10); }
@Test public void build_throws_IAE_if_read_timeout_is_negative() { expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Read timeout must be positive. Got -10"); underTest.setReadTimeoutMs(-10); } }
/** * @return a {@link OkHttpClient} singleton */ public OkHttpClient provide(Configuration config, SonarRuntime runtime) { if (okHttpClient == null) { OkHttpClientBuilder builder = new OkHttpClientBuilder(); builder.setConnectTimeoutMs(DEFAULT_CONNECT_TIMEOUT_IN_MS); builder.setReadTimeoutMs(DEFAULT_READ_TIMEOUT_IN_MS); // no need to define proxy URL as system-wide proxy is used and properly // configured by bootstrap process. builder.setProxyLogin(config.get(HTTP_PROXY_USER.getKey()).orElse(null)); builder.setProxyPassword(config.get(HTTP_PROXY_PASSWORD.getKey()).orElse(null)); builder.setUserAgent(format("SonarQube/%s", runtime.getApiVersion().toString())); okHttpClient = builder.build(); } return okHttpClient; } }
private HttpConnector(Builder builder) { this.baseUrl = HttpUrl.parse(builder.url.endsWith("/") ? builder.url : format("%s/", builder.url)); checkArgument(this.baseUrl != null, "Malformed URL: '%s'", builder.url); OkHttpClientBuilder okHttpClientBuilder = new OkHttpClientBuilder(); okHttpClientBuilder.setUserAgent(builder.userAgent); if (!isNullOrEmpty(builder.login)) { // password is null when login represents an access token. In this case // the Basic credentials consider an empty password. okHttpClientBuilder.setCredentials(Credentials.basic(builder.login, nullToEmpty(builder.password), UTF_8)); } this.systemPassCode = builder.systemPassCode; okHttpClientBuilder.setProxy(builder.proxy); okHttpClientBuilder.setProxyLogin(builder.proxyLogin); okHttpClientBuilder.setProxyPassword(builder.proxyPassword); okHttpClientBuilder.setConnectTimeoutMs(builder.connectTimeoutMs); okHttpClientBuilder.setReadTimeoutMs(builder.readTimeoutMs); okHttpClientBuilder.setSSLSocketFactory(builder.sslSocketFactory); okHttpClientBuilder.setTrustManager(builder.sslTrustManager); this.okHttpClient = okHttpClientBuilder.build(); this.noRedirectOkHttpClient = newClientWithoutRedirect(this.okHttpClient); }
private static SSLSocketFactory systemDefaultSslSocketFactory(X509TrustManager trustManager) { KeyManager[] defaultKeyManager; try { defaultKeyManager = getDefaultKeyManager(); } catch (Exception e) { throw new IllegalStateException("Unable to get default key manager", e); } try { SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(defaultKeyManager, new TrustManager[] {trustManager}, null); return sslContext.getSocketFactory(); } catch (GeneralSecurityException e) { // The system has no TLS. Just give up. throw new AssertionError(e); } }
String defaultKeyStoreProvider = System.getProperty("javax.net.ssl.keyStoreProvider", ""); logDebug("keyStore is : " + defaultKeyStore); logDebug("keyStore type is : " + defaultKeyStoreType); logDebug("keyStore provider is : " + defaultKeyStoreProvider); logDebug("init keystore"); if (defaultKeyStoreProvider.isEmpty()) { ks = KeyStore.getInstance(defaultKeyStoreType); logDebug("init keymanager of type " + KeyManagerFactory.getDefaultAlgorithm()); KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());