private WsClient createSonarClient() { String hostUrl = removeEnd(mySonarServerConfig.getHostUrl(), "/"); CertificateManager certificateManager = CertificateManager.getInstance(); HttpConnector.Builder connectorBuilder = HttpConnector.newBuilder() .readTimeoutMilliseconds(READ_TIMEOUT_IN_MILLISECONDS) .connectTimeoutMilliseconds(CONNECT_TIMEOUT_IN_MILLISECONDS) .url(hostUrl) .setTrustManager(ConfirmingTrustManager.createForStorage(certificateManager.getCacertsPath(), certificateManager.getPassword())); if (!mySonarServerConfig.isAnonymous()) { if (StringUtils.isNotBlank(mySonarServerConfig.loadToken())) { // https://sonarqube.com/api/user_tokens/search connectorBuilder.token(mySonarServerConfig.getToken()); mySonarServerConfig.clearToken(); } else { mySonarServerConfig.loadPassword(); connectorBuilder.credentials(mySonarServerConfig.getUser(), mySonarServerConfig.getPassword()); mySonarServerConfig.clearPassword(); } } Optional<Proxy> proxy = getIntelliJProxyFor(hostUrl); if (proxy.isPresent()) { HttpConfigurable proxySettings = HttpConfigurable.getInstance(); connectorBuilder.proxy(proxy.get()); if (proxySettings.PROXY_AUTHENTICATION) { connectorBuilder.proxyCredentials(proxySettings.getProxyLogin(), proxySettings.getPlainProxyPassword()); } } return WsClientFactories.getDefault().newClient(connectorBuilder.build()); }