You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "Roded Bahat (Jira)" <ji...@apache.org> on 2020/03/09 14:22:00 UTC

[jira] [Commented] (JCLOUDS-1520) JClouds is not using the JDK's KeepAliveCache when UntrustedSSLContextSupplier is used

    [ https://issues.apache.org/jira/browse/JCLOUDS-1520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17055006#comment-17055006 ] 

Roded Bahat commented on JCLOUDS-1520:
--------------------------------------

Apparently, my last fix for this issue was not adequate: it's not enough to cache and reuse the SSLContext object (as its get() method returns a new SSLSocketFactoryImpl for every call) but rather, the SSLSocketFactory itself should be reused. This issue should thus be re-opened. I'll have a new PR soon.

> JClouds is not using the JDK's KeepAliveCache when UntrustedSSLContextSupplier is used
> --------------------------------------------------------------------------------------
>
>                 Key: JCLOUDS-1520
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1520
>             Project: jclouds
>          Issue Type: Bug
>          Components: jclouds-core
>    Affects Versions: 2.1.0
>            Reporter: Roded Bahat
>            Priority: Major
>             Fix For: 2.3.0, 2.2.1
>
>         Attachments: screenshot-1.png
>
>          Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> It seems like the fact that {{UntrustedSSLContextSupplier}} returns a new {{SSLContext}} on every {{get()}} call causes a consistent cache miss on the JVM's {{sun.net.www.http.KeepAliveCache}} which causes JClouds to not reuse existing TLS connections even though it could.
> The cache miss happens at {{sun.net.www.protocol.https.HttpsClient}} line 329 (openjdk version "1.8.0_222"):
> {noformat}
> /* see if one's already around */
> ret = (HttpsClient) kac.get(url, sf);
> {noformat}
> To reproduce, consider the following main:
> {noformat}
>     public static void main(String[] args) {
>         Properties overrides = new Properties();
>         overrides.setProperty(org.jclouds.Constants.PROPERTY_TRUST_ALL_CERTS, "true");
>         BlobStoreContext blobStoreContext = ContextBuilder.newBuilder("aws-s3")
>             .endpoint("https://s3.amazonaws.com")
>             .credentials("...", "...")
>             .overrides(overrides)
>             .buildView(BlobStoreContext.class);
>         BlobStore blobStore = blobStoreContext.getBlobStore();
>         blobStore.getBlob("roded-data", "blobname");
>         blobStore.getBlob("roded-data", "blobname");
>         blobStore.getBlob("roded-data", "blobname");
>         blobStoreContext.close();
>         System.exit(0);
>     }
> {noformat}
> If run using a JUL logging.properties with the following logger set to FINEST:
> {noformat}
> sun.net.www.protocol.http.level=FINEST
> {noformat}
> The following log is produced:
> {noformat}
> 2019-10-10 18:15:19.668 FINE    [org.jclouds.rest.internal.InvokeHttpMethod ] >> invoking GetBucketLocation
> 2019-10-10 18:15:19.733 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Sending request -1721710788: GET https://s3.amazonaws.com/roded-data?location HTTP/1.1
> 2019-10-10 18:15:19.893 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Looking for HttpClient for URL https://s3.amazonaws.com/roded-data?location and proxy value of DIRECT
> 2019-10-10 18:15:19.893 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Creating new HttpsClient with url:https://s3.amazonaws.com/roded-data?location and proxy:DIRECT with connect timeout:60000
> 2019-10-10 18:15:20.837 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@537b32ef8 pairs: {GET /roded-data?location HTTP/1.1: null}{x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855}{X-Amz-Date: 20191010T151519Z}{Authorization: AWS4-HMAC-SHA256 Credential=AKIAJO5RLGWKFW5ASG3A/20191010/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=896e11ddd9efac465b6ff2506d1688d454a50b3f73ac68d557ad036b1826e591}{User-Agent: jclouds/2019.224.2 java/1.8.0_222}{Host: s3.amazonaws.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
> 2019-10-10 18:15:21.169 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@6f815e7f7 pairs: {null: HTTP/1.1 200 OK}{x-amz-id-2: 1VVlx4h/fBOFe3n/7IxvpWN0RoVcE2rSpnnxMjvAQ93lJ6tHJAS+3IlXAx++/ZMEblp7kjJT4eQ=}{x-amz-request-id: AE0779131201B495}{Date: Thu, 10 Oct 2019 15:15:21 GMT}{Content-Type: application/xml}{Transfer-Encoding: chunked}{Server: AmazonS3}
> 2019-10-10 18:15:21.185 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Receiving response -1721710788: HTTP/1.1 200 OK
> 2019-10-10 18:15:21.500 FINE    [org.jclouds.rest.internal.InvokeHttpMethod ] >> invoking GetObject
> 2019-10-10 18:15:21.514 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Sending request -1332190413: GET https://roded-data.s3-eu-central-1.amazonaws.com/blobname HTTP/1.1
> 2019-10-10 18:15:21.517 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Looking for HttpClient for URL https://roded-data.s3-eu-central-1.amazonaws.com/blobname and proxy value of DIRECT
> 2019-10-10 18:15:21.519 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Creating new HttpsClient with url:https://roded-data.s3-eu-central-1.amazonaws.com/blobname and proxy:DIRECT with connect timeout:60000
> 2019-10-10 18:15:22.319 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@6a933be28 pairs: {GET /blobname HTTP/1.1: null}{x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855}{X-Amz-Date: 20191010T151519Z}{Authorization: AWS4-HMAC-SHA256 Credential=AKIAJO5RLGWKFW5ASG3A/20191010/eu-central-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=52fadcda579bb56e62b9b0489d7a0a90080103213021b0ea26d63f9e9620f4cc}{User-Agent: jclouds/2019.224.2 java/1.8.0_222}{Host: roded-data.s3-eu-central-1.amazonaws.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
> 2019-10-10 18:15:22.414 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@5f78de227 pairs: {null: HTTP/1.1 404 Not Found}{x-amz-request-id: 145B1CB9D422BD58}{x-amz-id-2: mrOGaJartmhkS4hnf825y0fwc7M9p3EelfeY5s/wxvI+Yb6pzgggYPS7xm0Su+Fk2/Plb55+vgw=}{Content-Type: application/xml}{Transfer-Encoding: chunked}{Date: Thu, 10 Oct 2019 15:15:22 GMT}{Server: AmazonS3}
> 2019-10-10 18:15:22.418 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Receiving response -1332190413: HTTP/1.1 404 Not Found
> 2019-10-10 18:15:22.444 FINE    [org.jclouds.rest.internal.InvokeHttpMethod ] >> invoking GetObject
> 2019-10-10 18:15:22.453 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Sending request -1332190413: GET https://roded-data.s3-eu-central-1.amazonaws.com/blobname HTTP/1.1
> 2019-10-10 18:15:22.455 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Looking for HttpClient for URL https://roded-data.s3-eu-central-1.amazonaws.com/blobname and proxy value of DIRECT
> 2019-10-10 18:15:22.456 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Creating new HttpsClient with url:https://roded-data.s3-eu-central-1.amazonaws.com/blobname and proxy:DIRECT with connect timeout:60000
> 2019-10-10 18:15:22.710 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@375b5b7f8 pairs: {GET /blobname HTTP/1.1: null}{x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855}{X-Amz-Date: 20191010T151519Z}{Authorization: AWS4-HMAC-SHA256 Credential=AKIAJO5RLGWKFW5ASG3A/20191010/eu-central-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=52fadcda579bb56e62b9b0489d7a0a90080103213021b0ea26d63f9e9620f4cc}{User-Agent: jclouds/2019.224.2 java/1.8.0_222}{Host: roded-data.s3-eu-central-1.amazonaws.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
> 2019-10-10 18:15:22.807 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@1813f3e97 pairs: {null: HTTP/1.1 404 Not Found}{x-amz-request-id: 1D56A991AE89399B}{x-amz-id-2: L3t4vJGnycAD6xDb0UCB6i5keZ+OdptP9xcAnPC36sLous0nlUht2zj1xrZXhc1EiBhQVJoVFKY=}{Content-Type: application/xml}{Transfer-Encoding: chunked}{Date: Thu, 10 Oct 2019 15:15:22 GMT}{Server: AmazonS3}
> 2019-10-10 18:15:22.810 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Receiving response -1332190413: HTTP/1.1 404 Not Found
> 2019-10-10 18:15:22.831 FINE    [org.jclouds.rest.internal.InvokeHttpMethod ] >> invoking GetObject
> 2019-10-10 18:15:22.842 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Sending request -1332190413: GET https://roded-data.s3-eu-central-1.amazonaws.com/blobname HTTP/1.1
> 2019-10-10 18:15:22.844 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Looking for HttpClient for URL https://roded-data.s3-eu-central-1.amazonaws.com/blobname and proxy value of DIRECT
> 2019-10-10 18:15:22.845 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Creating new HttpsClient with url:https://roded-data.s3-eu-central-1.amazonaws.com/blobname and proxy:DIRECT with connect timeout:60000
> 2019-10-10 18:15:23.118 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@25c5e9948 pairs: {GET /blobname HTTP/1.1: null}{x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855}{X-Amz-Date: 20191010T151519Z}{Authorization: AWS4-HMAC-SHA256 Credential=AKIAJO5RLGWKFW5ASG3A/20191010/eu-central-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=52fadcda579bb56e62b9b0489d7a0a90080103213021b0ea26d63f9e9620f4cc}{User-Agent: jclouds/2019.224.2 java/1.8.0_222}{Host: roded-data.s3-eu-central-1.amazonaws.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
> 2019-10-10 18:15:23.214 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@378bd86d7 pairs: {null: HTTP/1.1 404 Not Found}{x-amz-request-id: 4B31AE0000A88E59}{x-amz-id-2: KbsHdUb8aHJlBuSqLky1ld5vutQonKeCHGeCLo7/4HLQ42wA3evSvHq3VPwJPDHt9Y69EIr/L/Y=}{Content-Type: application/xml}{Transfer-Encoding: chunked}{Date: Thu, 10 Oct 2019 15:15:22 GMT}{Server: AmazonS3}
> 2019-10-10 18:15:23.217 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Receiving response -1332190413: HTTP/1.1 404 Not Found
> {noformat}
> Note the "Creating new HttpsClient" for every request. 
> If however we disable the {{jclouds.trust-all-certs}} property, we get the following log:
> {noformat}
> 2019-10-10 18:19:42.752 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Sending request 349720498: GET https://s3.amazonaws.com/roded-data?location HTTP/1.1
> 2019-10-10 18:19:42.887 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Looking for HttpClient for URL https://s3.amazonaws.com/roded-data?location and proxy value of DIRECT
> 2019-10-10 18:19:42.887 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Creating new HttpsClient with url:https://s3.amazonaws.com/roded-data?location and proxy:DIRECT with connect timeout:60000
> 2019-10-10 18:19:44.506 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@757194dc8 pairs: {GET /roded-data?location HTTP/1.1: null}{x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855}{X-Amz-Date: 20191010T151942Z}{Authorization: AWS4-HMAC-SHA256 Credential=AKIAJO5RLGWKFW5ASG3A/20191010/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=3a487b5e433bbb256329224f4bad65f7f29fc4ac14cfcec210e2edf8fac538a3}{User-Agent: jclouds/2019.224.2 java/1.8.0_222}{Host: s3.amazonaws.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
> 2019-10-10 18:19:44.695 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@7ff2b8d27 pairs: {null: HTTP/1.1 200 OK}{x-amz-id-2: kIwRu2VQM7kWQMr0Xw7fsxi5NVf7+1r93tbgY0dqcmDMXVdOc3Il4mZx+tlTRn288PgVQhs8FO0=}{x-amz-request-id: 3E70B5FDD3236B3B}{Date: Thu, 10 Oct 2019 15:19:45 GMT}{Content-Type: application/xml}{Transfer-Encoding: chunked}{Server: AmazonS3}
> 2019-10-10 18:19:44.709 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Receiving response 349720498: HTTP/1.1 200 OK
> 2019-10-10 18:19:44.953 FINE    [org.jclouds.rest.internal.InvokeHttpMethod ] >> invoking GetObject
> 2019-10-10 18:19:44.956 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Sending request 1704375366: GET https://roded-data.s3-eu-central-1.amazonaws.com/blobname HTTP/1.1
> 2019-10-10 18:19:44.957 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Looking for HttpClient for URL https://roded-data.s3-eu-central-1.amazonaws.com/blobname and proxy value of DIRECT
> 2019-10-10 18:19:44.957 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Creating new HttpsClient with url:https://roded-data.s3-eu-central-1.amazonaws.com/blobname and proxy:DIRECT with connect timeout:60000
> 2019-10-10 18:19:45.281 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@783ec9898 pairs: {GET /blobname HTTP/1.1: null}{x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855}{X-Amz-Date: 20191010T151942Z}{Authorization: AWS4-HMAC-SHA256 Credential=AKIAJO5RLGWKFW5ASG3A/20191010/eu-central-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=baa2eab8c0a2aa579437fb8eeacfba21c49a6fb6eb38a64ad84266356d5dca91}{User-Agent: jclouds/2019.224.2 java/1.8.0_222}{Host: roded-data.s3-eu-central-1.amazonaws.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
> 2019-10-10 18:19:45.375 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@1ddd34787 pairs: {null: HTTP/1.1 404 Not Found}{x-amz-request-id: 704306CFDBF48166}{x-amz-id-2: 4kKdfwUUP7X11mUDEiziENQ24FHQew5sztVQUOrvFPWy8+Ziek6S29luoWxTiexL4gDaRp6b9nk=}{Content-Type: application/xml}{Transfer-Encoding: chunked}{Date: Thu, 10 Oct 2019 15:19:44 GMT}{Server: AmazonS3}
> 2019-10-10 18:19:45.379 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Receiving response 1704375366: HTTP/1.1 404 Not Found
> 2019-10-10 18:19:45.400 FINE    [org.jclouds.rest.internal.InvokeHttpMethod ] >> invoking GetObject
> 2019-10-10 18:19:45.407 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Sending request 1704375366: GET https://roded-data.s3-eu-central-1.amazonaws.com/blobname HTTP/1.1
> 2019-10-10 18:19:45.409 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Looking for HttpClient for URL https://roded-data.s3-eu-central-1.amazonaws.com/blobname and proxy value of DIRECT
> 2019-10-10 18:19:45.411 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] KeepAlive stream retrieved from the cache, sun.net.www.protocol.https.HttpsClient(https://roded-data.s3-eu-central-1.amazonaws.com/blobname)
> 2019-10-10 18:19:45.413 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@7051777c8 pairs: {GET /blobname HTTP/1.1: null}{x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855}{X-Amz-Date: 20191010T151942Z}{Authorization: AWS4-HMAC-SHA256 Credential=AKIAJO5RLGWKFW5ASG3A/20191010/eu-central-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=baa2eab8c0a2aa579437fb8eeacfba21c49a6fb6eb38a64ad84266356d5dca91}{User-Agent: jclouds/2019.224.2 java/1.8.0_222}{Host: roded-data.s3-eu-central-1.amazonaws.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
> 2019-10-10 18:19:45.501 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@3241713e7 pairs: {null: HTTP/1.1 404 Not Found}{x-amz-request-id: 95DCDF548AD1D3F5}{x-amz-id-2: nffnuE4bV5YV0zLQjEsmcH2zo9F+QIgkCAV3ynbrrkugvrPfoC86DIKZOG2kvbLiSeU0FAk63Kc=}{Content-Type: application/xml}{Transfer-Encoding: chunked}{Date: Thu, 10 Oct 2019 15:19:44 GMT}{Server: AmazonS3}
> 2019-10-10 18:19:45.503 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Receiving response 1704375366: HTTP/1.1 404 Not Found
> 2019-10-10 18:19:45.519 FINE    [org.jclouds.rest.internal.InvokeHttpMethod ] >> invoking GetObject
> 2019-10-10 18:19:45.528 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Sending request 1704375366: GET https://roded-data.s3-eu-central-1.amazonaws.com/blobname HTTP/1.1
> 2019-10-10 18:19:45.530 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] Looking for HttpClient for URL https://roded-data.s3-eu-central-1.amazonaws.com/blobname and proxy value of DIRECT
> 2019-10-10 18:19:45.531 FINEST  [sun.net.www.protocol.http.HttpURLConnection ] KeepAlive stream retrieved from the cache, sun.net.www.protocol.https.HttpsClient(https://roded-data.s3-eu-central-1.amazonaws.com/blobname)
> 2019-10-10 18:19:45.537 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@2abc224d8 pairs: {GET /blobname HTTP/1.1: null}{x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855}{X-Amz-Date: 20191010T151942Z}{Authorization: AWS4-HMAC-SHA256 Credential=AKIAJO5RLGWKFW5ASG3A/20191010/eu-central-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=baa2eab8c0a2aa579437fb8eeacfba21c49a6fb6eb38a64ad84266356d5dca91}{User-Agent: jclouds/2019.224.2 java/1.8.0_222}{Host: roded-data.s3-eu-central-1.amazonaws.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
> 2019-10-10 18:19:45.624 FINE    [sun.net.www.protocol.http.HttpURLConnection ] sun.net.www.MessageHeader@13cd7ea57 pairs: {null: HTTP/1.1 404 Not Found}{x-amz-request-id: 5F6BC6DF82764B6D}{x-amz-id-2: ib+NVkeJD0hSOu+8/1ZIo7OzeRa16SWDtQ+7k2K415w9KJFwbJISaal1u01wD1kKhPeE7UNbpRA=}{Content-Type: application/xml}{Transfer-Encoding: chunked}{Date: Thu, 10 Oct 2019 15:19:45 GMT}{Server: AmazonS3}
> 2019-10-10 18:19:45.625 FINE    [org.jclouds.http.internal.JavaUrlHttpCommandExecutorService ] Receiving response 1704375366: HTTP/1.1 404 Not Found
> {noformat}
> Note how the {{HttpsClient}} objects are retrieved from the cache.
> I purpose the following fix to {{UntrustedSSLContextSupplier}} which makes it return the same {{SSLContext}} for all {{get}} calls:
> {noformat}
>    @Singleton
>    public static class UntrustedSSLContextSupplier implements Supplier<SSLContext> {
>       private final SSLContext sslContext;
>       @Inject
>       UntrustedSSLContextSupplier(TrustAllCerts trustAllCerts) {
>          try {
>             this.sslContext = SSLContext.getInstance("SSL");
>             this.sslContext.init(null, new TrustManager[] { trustAllCerts }, new SecureRandom());
>          } catch (Exception e) {
>             throw Throwables.propagate(e);
>          }
>       }
>       @Override
>       public SSLContext get() {
>          return sslContext;
>       }
>    }
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)