Udo Kohlmeyer created GEODE-6047: ------------------------------------ Summary: GatewayTransportFilters break when you use GZIP or Cipher streams Key: GEODE-6047 URL: https://issues.apache.org/jira/browse/GEODE-6047 Project: Geode Issue Type: Bug Components: wan Reporter: Udo Kohlmeyer
When configuring a GatewayTransportFilter to use either GZIP or Cipher streams, the wan gateways cannot connect any more. When configuring a Server with GatewayTransportFilter using: {code:java} public class WanTransportEncryptionListener implements GatewayTransportFilter { private Cipher cipherEnc = null; private Cipher cipherDec = null; @PostConstruct private void init() throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException { String algorithm = "AES"; KeyGenerator keyGenerator = KeyGenerator.getInstance(algorithm); int keySize = 128; keyGenerator.init(keySize); Key key = keyGenerator.generateKey(); String transformation = "AES/CBC/PKCS5Padding"; cipherEnc = Cipher.getInstance(transformation); cipherDec = Cipher.getInstance(transformation); cipherEnc.init(Cipher.ENCRYPT_MODE, key); cipherDec.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(cipherEnc.getIV())); } @Override public InputStream getInputStream(InputStream stream) { return new BufferedInputStream(new CipherInputStream(stream, cipherDec)); } @Override public OutputStream getOutputStream(OutputStream stream) { return new BufferedOutputStream(new CipherOutputStream(stream, cipherEnc)); } }{code} The following exception is thrown {code:java} [warn 2018/11/13 15:08:09.602 PST <Handshaker 0.0.0.0/0.0.0.0:15000 Thread 0> tid=99] Error processing client connection java.lang.IllegalArgumentException: unknown communications mode: -74 at org.apache.geode.internal.cache.tier.CommunicationMode.fromModeNumber(CommunicationMode.java:164) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.getCommunicationModeForNonSelector(AcceptorImpl.java:1558) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.handleNewClientConnection(AcceptorImpl.java:1422) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$6.run(AcceptorImpl.java:1334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) [warn 2018/11/13 15:08:09.602 PST <Handshaker 0.0.0.0/0.0.0.0:15000 Thread 0> tid=99] Cache server: failed accepting client connection {0} java.io.EOFException at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.handleNewClientConnection(AcceptorImpl.java:1430) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$6.run(AcceptorImpl.java:1334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) [warn 2018/11/13 15:08:09.617 PST <Handshaker 0.0.0.0/0.0.0.0:15000 Thread 0> tid=99] Error processing client connection java.lang.IllegalArgumentException: unknown communications mode: 26 at org.apache.geode.internal.cache.tier.CommunicationMode.fromModeNumber(CommunicationMode.java:164) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.getCommunicationModeForNonSelector(AcceptorImpl.java:1558) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.handleNewClientConnection(AcceptorImpl.java:1422) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$6.run(AcceptorImpl.java:1334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) [warn 2018/11/13 15:08:09.618 PST <Handshaker 0.0.0.0/0.0.0.0:15000 Thread 0> tid=99] Cache server: failed accepting client connection {0} java.io.EOFException at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.handleNewClientConnection(AcceptorImpl.java:1430) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$6.run(AcceptorImpl.java:1334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) [warn 2018/11/13 15:08:09.624 PST <Handshaker 0.0.0.0/0.0.0.0:15000 Thread 0> tid=99] Error processing client connection java.lang.IllegalArgumentException: unknown communications mode: 84 at org.apache.geode.internal.cache.tier.CommunicationMode.fromModeNumber(CommunicationMode.java:164) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.getCommunicationModeForNonSelector(AcceptorImpl.java:1558) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.handleNewClientConnection(AcceptorImpl.java:1422) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$6.run(AcceptorImpl.java:1334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) [warn 2018/11/13 15:08:09.624 PST <Handshaker 0.0.0.0/0.0.0.0:15000 Thread 0> tid=99] Cache server: failed accepting client connection {0} java.io.EOFException at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.handleNewClientConnection(AcceptorImpl.java:1430) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$6.run(AcceptorImpl.java:1334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)