@@ -205,19 +205,30 @@ HttpClient createHttpClient(CouchDbProperties props) {
205205 .setDefaultRequestConfig (RequestConfig .custom ()
206206 .setSocketTimeout (props .getSocketTimeout ())
207207 .setConnectTimeout (props .getConnectionTimeout ()).build ());
208+
209+ //set up a credsProvider, but it will only be used if creds have been supplied
210+ CredentialsProvider credsProvider = new BasicCredentialsProvider ();
211+ boolean credsProviderUsed = false ;
208212 if (props .getProxyHost () != null ) {
209213 clientBuilder .setProxy (new HttpHost (props .getProxyHost (), props .getProxyPort ()));
214+ if (props .getProxyUser () != null ) {
215+ credsProviderUsed = true ;
216+ credsProvider .setCredentials (new AuthScope (props .getProxyHost (), props
217+ .getProxyPort ()), new UsernamePasswordCredentials (props .getProxyUser
218+ (), props .getProxyPassword ()));
219+ }
210220 }
211221 clientBuilder .setDefaultCookieStore (cookies ); // use AUTH cookies
212222 if (props .getUsername () != null ) {
223+ credsProviderUsed = true ;
213224 // this one is for non account endpoints.
214- CredentialsProvider credsProvider = new BasicCredentialsProvider ();
215225 credsProvider .setCredentials (new AuthScope (props .getHost (),
216226 props .getPort ()),
217227 new UsernamePasswordCredentials (props .getUsername (),
218228 props .getPassword ()));
229+ }
230+ if (credsProviderUsed ) {
219231 clientBuilder .setDefaultCredentialsProvider (credsProvider );
220- //props.clearPassword();
221232 }
222233 registerInterceptors (clientBuilder );
223234 return clientBuilder .build ();
0 commit comments