> Ok, but you can insert teh SslFilter *before* the proxyFilter. Once you > get the ProxyConnector instance, get the connector and do : Well, I am using a patched QuickFixJ version, in which the control flow is a bit different.
Here is an excerpt from the code they are using: CompositeIoFilterChainBuilder ioFilterChainBuilder = new CompositeIoFilterChainBuilder( userIoFilterChainBuilder); boolean useProxy = proxyType != null && proxyPort > 0 && socketAddresses[0] instanceof InetSocketAddress; SslFilter sslFilter = null; if (sslEnabled) { boolean autoStart = !useProxy; sslFilter = installSslFilter(ioFilterChainBuilder, autoStart); } ioFilterChainBuilder.addLast(FIXProtocolCodecFactory.FILTER_NAME, new ProtocolCodecFilter(new FIXProtocolCodecFactory())); if (useProxy) { SocketConnector socketConnector = new NioSocketConnector(); socketConnector.setFilterChainBuilder(ioFilterChainBuilder); ioConnector = ProtocolFactory.createIoProxyConnector( socketConnector, (InetSocketAddress) socketAddresses[0], new InetSocketAddress(proxyHost, proxyPort), proxyType, proxyVersion, proxyUser, proxyPassword, proxyDomain, proxyWorkstation); } else { ioConnector = ProtocolFactory.createIoConnector(socketAddresses[0]); ioConnector.setFilterChainBuilder(ioFilterChainBuilder); } ioHandler = new InitiatorIoHandler(fixSession, sslFilter, networkingOptions, eventHandlingStrategy); } private SslFilter installSslFilter(CompositeIoFilterChainBuilder ioFilterChainBuilder, boolean autoStart) throws GeneralSecurityException { SslFilter sslFilter = new SslFilter(SSLContextFactory.getInstance(keyStoreName, keyStorePassword.toCharArray()), autoStart); if (enableProtocole != null) sslFilter.setEnabledProtocols(enableProtocole); if (cipherSuites != null) sslFilter.setEnabledCipherSuites(cipherSuites); sslFilter.setUseClientMode(true); ioFilterChainBuilder.addLast(SSLSupport.FILTER_NAME, sslFilter); return sslFilter; } Sure, with a lot of time, I could possibly rewrite the code, to swap the positions of the filters in the filterchain. But I see little sense in it, since the code is working. The only problem I have, is that I get this deadlock after a few minutes or so. At the moment, as a workaround, I simply disabled the "synchronized(handler) { ... }" in ProxyFilter.writeData(), I think for my special case this will work. I don't think it is possible, that the filterchains are traverted in the same order for reading and writing.