@@ -628,48 +628,56 @@ private static SSLContext buildSSLContext(SplitClientConfig config) throws IOExc
628628
629629 private static HttpClientBuilder setupProxy (HttpClientBuilder httpClientbuilder , SplitClientConfig config ) {
630630 _log .info ("Initializing Split SDK with proxy settings" );
631- HttpHost proxyHost ;
632- if (config .proxyConfiguration () != null && config .proxyConfiguration ().getHost () != null ) {
633- proxyHost = config .proxyConfiguration ().getHost ();
631+ if (config .proxyConfiguration () != null ) {
632+ return useProxyConfiguration (httpClientbuilder , config );
634633 } else {
635- _log .warn ("`proxyHost`, `proxyPort` configuration methods are deprecated. Please use `ProxyConfiguration` builder instead." );
636- proxyHost = config .proxy ();
634+ return useLegacyProxyConfiguration (httpClientbuilder , config );
637635 }
638- DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner (proxyHost );
639- httpClientbuilder .setRoutePlanner (routePlanner );
636+ }
640637
641- if ((config .proxyUsername () != null && config .proxyPassword () != null ) ||
642- (config .proxyConfiguration () != null && config .proxyConfiguration ().getProxyCredentialsProvider () != null &&
643- config .proxyConfiguration ().getProxyCredentialsProvider () instanceof io .split .client .dtos .BasicCredentialsProvider )) {
644- _log .debug ("Proxy setup using credentials" );
645- String userName ;
646- String password ;
647- if (config .proxyUsername () == null && config .proxyPassword () == null ) {
648- io .split .client .dtos .BasicCredentialsProvider basicAuth =
649- (io .split .client .dtos .BasicCredentialsProvider ) config .proxyConfiguration ().getProxyCredentialsProvider ();
650- userName = basicAuth .getUsername ();
651- password = basicAuth .getPassword ();
652- } else {
653- _log .warn ("`proxyUsername` and `proxyPassword` configuration methods are deprecated. " +
654- "Please use `ProxyConfiguration` builder instead." );
655- userName = config .proxyUsername ();
656- password = config .proxyPassword ();
657- }
658- BasicCredentialsProvider credsProvider = new BasicCredentialsProvider ();
659- AuthScope siteScope = new AuthScope (proxyHost .getHostName (), proxyHost .getPort ());
660- Credentials siteCreds = new UsernamePasswordCredentials (userName ,
661- password .toCharArray ());
662- credsProvider .setCredentials (siteScope , siteCreds );
663- httpClientbuilder .setDefaultCredentialsProvider (credsProvider );
638+ private static HttpClientBuilder useLegacyProxyConfiguration (HttpClientBuilder httpClientbuilder , SplitClientConfig config ) {
639+ HttpHost proxyHost = config .proxy ();
640+ httpClientbuilder = addProxyHost (httpClientbuilder , proxyHost );
641+ if (config .proxyUsername () != null && config .proxyPassword () != null ) {
642+ return addProxyBasicAuth (httpClientbuilder , proxyHost , config .proxyUsername (), config .proxyPassword ());
664643 }
644+
645+ return httpClientbuilder ;
646+ }
665647
666- if (config .proxyConfiguration () != null &&
667- config .proxyConfiguration ().getProxyCredentialsProvider () instanceof io .split .client .dtos .BearerCredentialsProvider ) {
668- _log .debug ("Proxy setup using Bearer token" );
669- httpClientbuilder .setDefaultCredentialsProvider (new HttpClientDynamicCredentials (
670- (BearerCredentialsProvider ) config .proxyConfiguration ().getProxyCredentialsProvider ()));
648+ private static HttpClientBuilder useProxyConfiguration (HttpClientBuilder httpClientbuilder , SplitClientConfig config ) {
649+ HttpHost proxyHost = config .proxyConfiguration ().getHost ();
650+ httpClientbuilder = addProxyHost (httpClientbuilder , proxyHost );
651+ if (config .proxyConfiguration ().getProxyCredentialsProvider () == null ) {
652+ return httpClientbuilder ;
653+ }
654+
655+ if (config .proxyConfiguration ().getProxyCredentialsProvider () instanceof io .split .client .dtos .BasicCredentialsProvider ) {
656+ io .split .client .dtos .BasicCredentialsProvider basicAuth =
657+ (io .split .client .dtos .BasicCredentialsProvider ) config .proxyConfiguration ().getProxyCredentialsProvider ();
658+ return addProxyBasicAuth (httpClientbuilder , proxyHost , basicAuth .getUsername (), basicAuth .getPassword ());
671659 }
672660
661+ _log .debug ("Proxy setup using Bearer token" );
662+ httpClientbuilder .setDefaultCredentialsProvider (new HttpClientDynamicCredentials (
663+ (BearerCredentialsProvider ) config .proxyConfiguration ().getProxyCredentialsProvider ()));
664+ return httpClientbuilder ;
665+ }
666+
667+ private static HttpClientBuilder addProxyHost (HttpClientBuilder httpClientbuilder , HttpHost proxyHost ) {
668+ DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner (proxyHost );
669+ httpClientbuilder .setRoutePlanner (routePlanner );
670+ return httpClientbuilder ;
671+ }
672+
673+ private static HttpClientBuilder addProxyBasicAuth (HttpClientBuilder httpClientbuilder , HttpHost proxyHost , String userName , String password ) {
674+ _log .debug ("Proxy setup using Basic authentication" );
675+ BasicCredentialsProvider credsProvider = new BasicCredentialsProvider ();
676+ AuthScope siteScope = new AuthScope (proxyHost .getHostName (), proxyHost .getPort ());
677+ Credentials siteCreds = new UsernamePasswordCredentials (userName ,
678+ password .toCharArray ());
679+ credsProvider .setCredentials (siteScope , siteCreds );
680+ httpClientbuilder .setDefaultCredentialsProvider (credsProvider );
673681 return httpClientbuilder ;
674682 }
675683
0 commit comments