From 8b65869262d2901b10d7091926cfd21ff5fbf9ed Mon Sep 17 00:00:00 2001 From: Danielle Vass Date: Wed, 5 Aug 2020 15:27:10 +0100 Subject: [PATCH 1/3] Override onSetSSLParameters to not call setEndpointIdentificationAlgorithm --- .../client/connection/websocket/WebSocketClientWrapper.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java b/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java index cce5857a..d393b508 100644 --- a/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java +++ b/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java @@ -8,6 +8,7 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.SSLException; +import javax.net.ssl.SSLParameters; import javax.net.ssl.SSLSocketFactory; import org.java_websocket.client.WebSocketClient; @@ -89,4 +90,9 @@ public void onError(final Exception ex) { public void removeWebSocketListener() { webSocketListener = null; } + + @Override + protected void onSetSSLParameters(SSLParameters sslParameters) { + // https://github.com/TooTallNate/Java-WebSocket/wiki/No-such-method-error-setEndpointIdentificationAlgorithm + } } From 0bd5356154f42807234dacaf9051aa6b7ce63b74 Mon Sep 17 00:00:00 2001 From: Danielle Vass Date: Wed, 5 Aug 2020 15:34:21 +0100 Subject: [PATCH 2/3] add a try for the onSetSSLParamters for devices that do have access to the api --- .../client/connection/websocket/WebSocketClientWrapper.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java b/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java index d393b508..fb8c3c22 100644 --- a/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java +++ b/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java @@ -94,5 +94,10 @@ public void removeWebSocketListener() { @Override protected void onSetSSLParameters(SSLParameters sslParameters) { // https://github.com/TooTallNate/Java-WebSocket/wiki/No-such-method-error-setEndpointIdentificationAlgorithm + try { + super.onSetSSLParameters(sslParameters); + } catch (NoSuchMethodError error) { + // if this is being called on an android device pre-24 this api isn't available + } } } From 2b965334411c01f63d7ac65465dbb8b419891e5c Mon Sep 17 00:00:00 2001 From: Danielle Vass Date: Wed, 5 Aug 2020 15:53:33 +0100 Subject: [PATCH 3/3] fix bug in encrypted channel where replace doesn't exist on maps --- .../pusher/client/channel/impl/PrivateEncryptedChannelImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/pusher/client/channel/impl/PrivateEncryptedChannelImpl.java b/src/main/java/com/pusher/client/channel/impl/PrivateEncryptedChannelImpl.java index 5071fc6e..4182153e 100644 --- a/src/main/java/com/pusher/client/channel/impl/PrivateEncryptedChannelImpl.java +++ b/src/main/java/com/pusher/client/channel/impl/PrivateEncryptedChannelImpl.java @@ -185,7 +185,7 @@ private PusherEvent decryptMessage(String message) { encryptedReceivedData.getCiphertext(), encryptedReceivedData.getNonce()); - receivedMessage.replace("data", decryptedData); + receivedMessage.put("data", decryptedData); return new PusherEvent(receivedMessage); }