Skip to content

Commit 10e575a

Browse files
Merge pull request #890 from watson-developer-cloud/ssl-fix
Fix SSLHandshakeException in Visual Recognition
2 parents 3db1404 + 33403f1 commit 10e575a

File tree

3 files changed

+35
-41
lines changed

3 files changed

+35
-41
lines changed

config.properties.enc

0 Bytes
Binary file not shown.

conversation/src/test/java/com/ibm/watson/developer_cloud/conversation/v1/ConversationServiceIT.java

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,6 @@
1212
*/
1313
package com.ibm.watson.developer_cloud.conversation.v1;
1414

15-
import static org.junit.Assert.assertEquals;
16-
import static org.junit.Assert.assertNotNull;
17-
import static org.junit.Assert.assertNull;
18-
import static org.junit.Assert.assertTrue;
19-
import static org.junit.Assert.fail;
20-
21-
import java.text.DateFormat;
22-
import java.text.SimpleDateFormat;
23-
import java.util.ArrayList;
24-
import java.util.Date;
25-
import java.util.HashMap;
26-
import java.util.List;
27-
import java.util.Map;
28-
import java.util.UUID;
29-
30-
import com.ibm.watson.developer_cloud.conversation.v1.model.RuntimeEntity;
31-
import org.junit.Ignore;
32-
import org.junit.Test;
33-
import org.junit.runner.RunWith;
34-
3515
import com.ibm.watson.developer_cloud.conversation.v1.model.Context;
3616
import com.ibm.watson.developer_cloud.conversation.v1.model.Counterexample;
3717
import com.ibm.watson.developer_cloud.conversation.v1.model.CounterexampleCollection;
@@ -74,6 +54,7 @@
7454
import com.ibm.watson.developer_cloud.conversation.v1.model.MessageOptions;
7555
import com.ibm.watson.developer_cloud.conversation.v1.model.MessageResponse;
7656
import com.ibm.watson.developer_cloud.conversation.v1.model.OutputData;
57+
import com.ibm.watson.developer_cloud.conversation.v1.model.RuntimeEntity;
7758
import com.ibm.watson.developer_cloud.conversation.v1.model.RuntimeIntent;
7859
import com.ibm.watson.developer_cloud.conversation.v1.model.UpdateCounterexampleOptions;
7960
import com.ibm.watson.developer_cloud.conversation.v1.model.UpdateDialogNodeOptions;
@@ -87,8 +68,25 @@
8768
import com.ibm.watson.developer_cloud.service.exception.NotFoundException;
8869
import com.ibm.watson.developer_cloud.service.exception.UnauthorizedException;
8970
import com.ibm.watson.developer_cloud.util.RetryRunner;
90-
9171
import jersey.repackaged.jsr166e.CompletableFuture;
72+
import org.junit.Ignore;
73+
import org.junit.Test;
74+
import org.junit.runner.RunWith;
75+
76+
import java.text.DateFormat;
77+
import java.text.SimpleDateFormat;
78+
import java.util.ArrayList;
79+
import java.util.Date;
80+
import java.util.HashMap;
81+
import java.util.List;
82+
import java.util.Map;
83+
import java.util.UUID;
84+
85+
import static org.junit.Assert.assertEquals;
86+
import static org.junit.Assert.assertNotNull;
87+
import static org.junit.Assert.assertNull;
88+
import static org.junit.Assert.assertTrue;
89+
import static org.junit.Assert.fail;
9290

9391
/**
9492
* Integration test for the {@link Conversation}.
@@ -1231,7 +1229,6 @@ public void testGetWorkspace() {
12311229
assertNotNull(response.getWorkspaceId());
12321230
assertEquals(response.getWorkspaceId(), workspaceId);
12331231
assertNotNull(response.getName());
1234-
assertNotNull(response.getDescription());
12351232
assertNotNull(response.getLanguage());
12361233

12371234
Date now = new Date();
@@ -1273,7 +1270,6 @@ public void testListWorkspaces() {
12731270

12741271
assertNotNull(wResponse);
12751272
assertNotNull(wResponse.getName());
1276-
assertNotNull(wResponse.getDescription());
12771273
}
12781274

12791275
/**

core/src/main/java/com/ibm/watson/developer_cloud/http/HttpClientSingleton.java

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,20 @@
1212
*/
1313
package com.ibm.watson.developer_cloud.http;
1414

15+
import com.ibm.watson.developer_cloud.service.WatsonService;
16+
import com.ibm.watson.developer_cloud.service.security.DelegatingSSLSocketFactory;
17+
import com.ibm.watson.developer_cloud.util.HttpLogging;
18+
import okhttp3.ConnectionSpec;
19+
import okhttp3.OkHttpClient;
20+
import okhttp3.OkHttpClient.Builder;
21+
import okhttp3.TlsVersion;
22+
23+
import javax.net.ssl.SSLContext;
24+
import javax.net.ssl.SSLSocket;
25+
import javax.net.ssl.SSLSocketFactory;
26+
import javax.net.ssl.TrustManager;
27+
import javax.net.ssl.TrustManagerFactory;
28+
import javax.net.ssl.X509TrustManager;
1529
import java.io.IOException;
1630
import java.net.CookieManager;
1731
import java.net.CookiePolicy;
@@ -24,22 +38,6 @@
2438
import java.util.logging.Level;
2539
import java.util.logging.Logger;
2640

27-
import javax.net.ssl.SSLContext;
28-
import javax.net.ssl.SSLSocket;
29-
import javax.net.ssl.SSLSocketFactory;
30-
import javax.net.ssl.TrustManager;
31-
import javax.net.ssl.TrustManagerFactory;
32-
import javax.net.ssl.X509TrustManager;
33-
34-
import com.ibm.watson.developer_cloud.service.WatsonService;
35-
import com.ibm.watson.developer_cloud.service.security.DelegatingSSLSocketFactory;
36-
import com.ibm.watson.developer_cloud.util.HttpLogging;
37-
38-
import okhttp3.ConnectionSpec;
39-
import okhttp3.OkHttpClient;
40-
import okhttp3.OkHttpClient.Builder;
41-
import okhttp3.TlsVersion;
42-
4341
/**
4442
* This class encapsulate the {@link OkHttpClient} instance in a singleton pattern. OkHttp performs best when you create
4543
* a single OkHttpClient instance and reuse it for all of your HTTP calls. This is because each client holds its own
@@ -127,8 +125,8 @@ private void setupTLSProtocol(final OkHttpClient.Builder builder) {
127125

128126
X509TrustManager trustManager = (X509TrustManager) trustManagers[0];
129127

130-
// On IBM JDK's this gets only TLSv1
131-
SSLContext sslContext = SSLContext.getInstance("TLS");
128+
System.setProperty("com.ibm.jsse2.overrideDefaultTLS", "true");
129+
SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
132130

133131
sslContext.init(null, new TrustManager[] { trustManager }, null);
134132
SSLSocketFactory sslSocketFactory = new DelegatingSSLSocketFactory(sslContext.getSocketFactory()) {

0 commit comments

Comments
 (0)