[
https://issues.apache.org/jira/browse/DIRMINA-1199?focusedWorklogId=1046468&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-1046468
]
ASF GitHub Bot logged work on DIRMINA-1199:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 08/Oct/26 17:49
Start Date: 08/Oct/26 17:49
Worklog Time Spent: 10m
Work Description: tomaswolf commented on code in PR #77:
URL: https://github.com/apache/mina/pull/77#discussion_r4222241278
##########
mina-core/src/test/java/org/apache/mina/filter/ssl/SslEnd2EndTest.java:
##########
@@ -0,0 +1,343 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.mina.filter.ssl;
+
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
+import org.apache.mina.core.future.ConnectFuture;
+import org.apache.mina.core.future.WriteFuture;
+import org.apache.mina.core.service.IoAcceptor;
+import org.apache.mina.core.service.IoConnector;
+import org.apache.mina.core.service.IoHandler;
+import org.apache.mina.core.service.IoHandlerAdapter;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.apache.mina.util.AcceptorBindUtil;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManagerFactory;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.security.Security;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(Parameterized.class)
+public class SslEnd2EndTest {
+
+ private static final String KEY_MANAGER_FACTORY_ALGORITHM;
+ private static final int MAX_LENGTH = 1024 * 1024 * 8;
+
+ static {
+ String algorithm =
Security.getProperty("ssl.KeyManagerFactory.algorithm");
+ if (algorithm == null) {
+ algorithm = KeyManagerFactory.getDefaultAlgorithm();
+ }
+
+ KEY_MANAGER_FACTORY_ALGORITHM = algorithm;
+ }
+
+ @Parameterized.Parameters(name = "{index}: {0} / {1} / {2} / {3}")
+ public static Collection<Object[]> data() {
+ return Arrays.asList(new Object[][]{
+ {"TLSv1.2", "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
2048, 0},
+ {"TLSv1.2", "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
2048, 4},
+ {"TLSv1.3", "TLS_AES_128_GCM_SHA256", 2048, 0},
+ {"TLSv1.3", "TLS_AES_128_GCM_SHA256", 2048, 4},
+ {"TLSv1.3", "TLS_AES_256_GCM_SHA384", 4096, 0},
+ {"TLSv1.3", "TLS_AES_256_GCM_SHA384", 4096, 4},
+ });
+ }
+
+ private final String protocol;
+ private final String[] cipherSuites;
+ private final int messageCount;
+ private final int messageLengthDelta;
+
+ public SslEnd2EndTest(String protocol, String cipherSuites, int
messageCount, int messageLengthDelta) {
+ this.protocol = protocol;
+ this.cipherSuites = cipherSuites.split(",");
+ this.messageCount = messageCount;
+ this.messageLengthDelta = messageLengthDelta;
+ }
+
+ @Test
+ public void shouldSendLargeMessages() throws Exception {
+ ByteBuffer acceptorReceiveBuffer = ByteBuffer.allocate(MAX_LENGTH);
+ AcceptorHandler acceptorHandler = new
AcceptorHandler(acceptorReceiveBuffer);
+ IoAcceptor acceptor = createAcceptor(acceptorHandler);
+
+ try {
+ AcceptorBindUtil.tryBind(acceptor);
+
+ ByteBuffer connectorReceiveBuffer =
ByteBuffer.allocate(MAX_LENGTH);
+ ConnectorIoHandler connectorHandler = new
ConnectorIoHandler(connectorReceiveBuffer);
+ IoConnector connector = createConnector(connectorHandler);
+
+ try {
+ ConnectFuture connectFuture =
connector.connect(acceptor.getLocalAddress());
+ boolean connected = connectFuture.awaitUninterruptibly(4L,
TimeUnit.SECONDS);
+
+ if (!connected) {
+ throw new RuntimeException("Failed to connect");
+ }
+
+ IoBuffer connectorSendBuffer =
IoBuffer.wrap(ByteBuffer.allocate(MAX_LENGTH));
+
+ for (int i = 0; i < connectorSendBuffer.limit(); i += 4) {
+ connectorSendBuffer.putInt(i);
+ }
+
+ connectorSendBuffer.flip();
+
+ IoSession session = connectFuture.getSession();
+ int messageLength = 65_536;
+
+ for (int i = 0; i < messageCount; i++) {
+ if (messageLength > MAX_LENGTH) {
+ throw new RuntimeException("Message length exceeds
send buffer capacity. Increase send buffer capacity");
+ }
+
+ connectorSendBuffer.limit(messageLength);
+ connectorSendBuffer.rewind();
+
+ CountDownLatch acceptorMessageReceivedLatch = new
CountDownLatch(1);
+ acceptorHandler.reset(acceptorMessageReceivedLatch,
messageLength);
+
+ CountDownLatch connectorMessageReceivedLatch = new
CountDownLatch(1);
+ connectorHandler.reset(connectorMessageReceivedLatch,
messageLength);
+
+ WriteFuture writeFuture =
session.write(connectorSendBuffer);
+ boolean written = writeFuture.awaitUninterruptibly(4L,
TimeUnit.SECONDS);
+
+ if (!written) {
+ throw new RuntimeException("Failed to write data");
+ }
Review Comment:
Ditto here; use `assertTrue`.
##########
mina-core/src/test/java/org/apache/mina/filter/ssl/SslEnd2EndTest.java:
##########
@@ -0,0 +1,343 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.mina.filter.ssl;
+
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
+import org.apache.mina.core.future.ConnectFuture;
+import org.apache.mina.core.future.WriteFuture;
+import org.apache.mina.core.service.IoAcceptor;
+import org.apache.mina.core.service.IoConnector;
+import org.apache.mina.core.service.IoHandler;
+import org.apache.mina.core.service.IoHandlerAdapter;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.apache.mina.util.AcceptorBindUtil;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManagerFactory;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.security.Security;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(Parameterized.class)
+public class SslEnd2EndTest {
+
+ private static final String KEY_MANAGER_FACTORY_ALGORITHM;
+ private static final int MAX_LENGTH = 1024 * 1024 * 8;
+
+ static {
+ String algorithm =
Security.getProperty("ssl.KeyManagerFactory.algorithm");
+ if (algorithm == null) {
+ algorithm = KeyManagerFactory.getDefaultAlgorithm();
+ }
+
+ KEY_MANAGER_FACTORY_ALGORITHM = algorithm;
+ }
+
+ @Parameterized.Parameters(name = "{index}: {0} / {1} / {2} / {3}")
+ public static Collection<Object[]> data() {
+ return Arrays.asList(new Object[][]{
+ {"TLSv1.2", "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
2048, 0},
+ {"TLSv1.2", "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
2048, 4},
+ {"TLSv1.3", "TLS_AES_128_GCM_SHA256", 2048, 0},
+ {"TLSv1.3", "TLS_AES_128_GCM_SHA256", 2048, 4},
+ {"TLSv1.3", "TLS_AES_256_GCM_SHA384", 4096, 0},
+ {"TLSv1.3", "TLS_AES_256_GCM_SHA384", 4096, 4},
+ });
+ }
+
+ private final String protocol;
+ private final String[] cipherSuites;
+ private final int messageCount;
+ private final int messageLengthDelta;
+
+ public SslEnd2EndTest(String protocol, String cipherSuites, int
messageCount, int messageLengthDelta) {
+ this.protocol = protocol;
+ this.cipherSuites = cipherSuites.split(",");
+ this.messageCount = messageCount;
+ this.messageLengthDelta = messageLengthDelta;
+ }
+
+ @Test
+ public void shouldSendLargeMessages() throws Exception {
+ ByteBuffer acceptorReceiveBuffer = ByteBuffer.allocate(MAX_LENGTH);
+ AcceptorHandler acceptorHandler = new
AcceptorHandler(acceptorReceiveBuffer);
+ IoAcceptor acceptor = createAcceptor(acceptorHandler);
+
+ try {
+ AcceptorBindUtil.tryBind(acceptor);
+
+ ByteBuffer connectorReceiveBuffer =
ByteBuffer.allocate(MAX_LENGTH);
+ ConnectorIoHandler connectorHandler = new
ConnectorIoHandler(connectorReceiveBuffer);
+ IoConnector connector = createConnector(connectorHandler);
+
+ try {
+ ConnectFuture connectFuture =
connector.connect(acceptor.getLocalAddress());
+ boolean connected = connectFuture.awaitUninterruptibly(4L,
TimeUnit.SECONDS);
+
+ if (!connected) {
+ throw new RuntimeException("Failed to connect");
+ }
+
+ IoBuffer connectorSendBuffer =
IoBuffer.wrap(ByteBuffer.allocate(MAX_LENGTH));
+
+ for (int i = 0; i < connectorSendBuffer.limit(); i += 4) {
+ connectorSendBuffer.putInt(i);
+ }
+
+ connectorSendBuffer.flip();
+
+ IoSession session = connectFuture.getSession();
+ int messageLength = 65_536;
+
+ for (int i = 0; i < messageCount; i++) {
+ if (messageLength > MAX_LENGTH) {
+ throw new RuntimeException("Message length exceeds
send buffer capacity. Increase send buffer capacity");
+ }
+
+ connectorSendBuffer.limit(messageLength);
+ connectorSendBuffer.rewind();
+
+ CountDownLatch acceptorMessageReceivedLatch = new
CountDownLatch(1);
+ acceptorHandler.reset(acceptorMessageReceivedLatch,
messageLength);
+
+ CountDownLatch connectorMessageReceivedLatch = new
CountDownLatch(1);
+ connectorHandler.reset(connectorMessageReceivedLatch,
messageLength);
+
+ WriteFuture writeFuture =
session.write(connectorSendBuffer);
+ boolean written = writeFuture.awaitUninterruptibly(4L,
TimeUnit.SECONDS);
+
+ if (!written) {
+ throw new RuntimeException("Failed to write data");
+ }
+
+ boolean messageReceived =
acceptorMessageReceivedLatch.await(4L, TimeUnit.SECONDS);
+
+ if (!messageReceived) {
+ throw new RuntimeException("Failed to receive from
connector");
+ }
Review Comment:
Would be useful to surface a possible exception in the acceptor here.
Perhaps using the same mechanism I used in my ad-hoc test, recording the first
exception caught, and then doing here
```
if (!messageReceived) {
assertNoException(acceptorHandler.getFailure());
fail("Failed to receive from connector");
}
```
##########
mina-core/src/test/java/org/apache/mina/filter/ssl/SslEnd2EndTest.java:
##########
@@ -0,0 +1,343 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.mina.filter.ssl;
+
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
+import org.apache.mina.core.future.ConnectFuture;
+import org.apache.mina.core.future.WriteFuture;
+import org.apache.mina.core.service.IoAcceptor;
+import org.apache.mina.core.service.IoConnector;
+import org.apache.mina.core.service.IoHandler;
+import org.apache.mina.core.service.IoHandlerAdapter;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.apache.mina.util.AcceptorBindUtil;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManagerFactory;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.security.Security;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(Parameterized.class)
+public class SslEnd2EndTest {
+
+ private static final String KEY_MANAGER_FACTORY_ALGORITHM;
+ private static final int MAX_LENGTH = 1024 * 1024 * 8;
+
+ static {
+ String algorithm =
Security.getProperty("ssl.KeyManagerFactory.algorithm");
+ if (algorithm == null) {
+ algorithm = KeyManagerFactory.getDefaultAlgorithm();
+ }
+
+ KEY_MANAGER_FACTORY_ALGORITHM = algorithm;
+ }
+
+ @Parameterized.Parameters(name = "{index}: {0} / {1} / {2} / {3}")
+ public static Collection<Object[]> data() {
+ return Arrays.asList(new Object[][]{
+ {"TLSv1.2", "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
2048, 0},
+ {"TLSv1.2", "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
2048, 4},
+ {"TLSv1.3", "TLS_AES_128_GCM_SHA256", 2048, 0},
+ {"TLSv1.3", "TLS_AES_128_GCM_SHA256", 2048, 4},
+ {"TLSv1.3", "TLS_AES_256_GCM_SHA384", 4096, 0},
+ {"TLSv1.3", "TLS_AES_256_GCM_SHA384", 4096, 4},
+ });
+ }
+
+ private final String protocol;
+ private final String[] cipherSuites;
+ private final int messageCount;
+ private final int messageLengthDelta;
+
+ public SslEnd2EndTest(String protocol, String cipherSuites, int
messageCount, int messageLengthDelta) {
+ this.protocol = protocol;
+ this.cipherSuites = cipherSuites.split(",");
+ this.messageCount = messageCount;
+ this.messageLengthDelta = messageLengthDelta;
+ }
+
+ @Test
+ public void shouldSendLargeMessages() throws Exception {
+ ByteBuffer acceptorReceiveBuffer = ByteBuffer.allocate(MAX_LENGTH);
+ AcceptorHandler acceptorHandler = new
AcceptorHandler(acceptorReceiveBuffer);
+ IoAcceptor acceptor = createAcceptor(acceptorHandler);
+
+ try {
+ AcceptorBindUtil.tryBind(acceptor);
+
+ ByteBuffer connectorReceiveBuffer =
ByteBuffer.allocate(MAX_LENGTH);
+ ConnectorIoHandler connectorHandler = new
ConnectorIoHandler(connectorReceiveBuffer);
+ IoConnector connector = createConnector(connectorHandler);
+
+ try {
+ ConnectFuture connectFuture =
connector.connect(acceptor.getLocalAddress());
+ boolean connected = connectFuture.awaitUninterruptibly(4L,
TimeUnit.SECONDS);
+
+ if (!connected) {
+ throw new RuntimeException("Failed to connect");
+ }
Review Comment:
Use assertions instead of throwing `RuntimeException`. Something like
```
assertTrue("Failed to connect", connectFuture.awaitUninterruptibly(4L,
TimeUnit.SECONDS));
```
##########
mina-core/src/test/java/org/apache/mina/filter/ssl/SslEnd2EndTest.java:
##########
@@ -0,0 +1,343 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.mina.filter.ssl;
+
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
+import org.apache.mina.core.future.ConnectFuture;
+import org.apache.mina.core.future.WriteFuture;
+import org.apache.mina.core.service.IoAcceptor;
+import org.apache.mina.core.service.IoConnector;
+import org.apache.mina.core.service.IoHandler;
+import org.apache.mina.core.service.IoHandlerAdapter;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.apache.mina.util.AcceptorBindUtil;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManagerFactory;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.security.Security;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(Parameterized.class)
+public class SslEnd2EndTest {
+
+ private static final String KEY_MANAGER_FACTORY_ALGORITHM;
+ private static final int MAX_LENGTH = 1024 * 1024 * 8;
+
+ static {
+ String algorithm =
Security.getProperty("ssl.KeyManagerFactory.algorithm");
+ if (algorithm == null) {
+ algorithm = KeyManagerFactory.getDefaultAlgorithm();
+ }
+
+ KEY_MANAGER_FACTORY_ALGORITHM = algorithm;
+ }
+
+ @Parameterized.Parameters(name = "{index}: {0} / {1} / {2} / {3}")
+ public static Collection<Object[]> data() {
+ return Arrays.asList(new Object[][]{
+ {"TLSv1.2", "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
2048, 0},
+ {"TLSv1.2", "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
2048, 4},
+ {"TLSv1.3", "TLS_AES_128_GCM_SHA256", 2048, 0},
+ {"TLSv1.3", "TLS_AES_128_GCM_SHA256", 2048, 4},
+ {"TLSv1.3", "TLS_AES_256_GCM_SHA384", 4096, 0},
+ {"TLSv1.3", "TLS_AES_256_GCM_SHA384", 4096, 4},
+ });
+ }
+
+ private final String protocol;
+ private final String[] cipherSuites;
+ private final int messageCount;
+ private final int messageLengthDelta;
+
+ public SslEnd2EndTest(String protocol, String cipherSuites, int
messageCount, int messageLengthDelta) {
+ this.protocol = protocol;
+ this.cipherSuites = cipherSuites.split(",");
+ this.messageCount = messageCount;
+ this.messageLengthDelta = messageLengthDelta;
+ }
+
+ @Test
+ public void shouldSendLargeMessages() throws Exception {
+ ByteBuffer acceptorReceiveBuffer = ByteBuffer.allocate(MAX_LENGTH);
+ AcceptorHandler acceptorHandler = new
AcceptorHandler(acceptorReceiveBuffer);
+ IoAcceptor acceptor = createAcceptor(acceptorHandler);
+
+ try {
+ AcceptorBindUtil.tryBind(acceptor);
+
+ ByteBuffer connectorReceiveBuffer =
ByteBuffer.allocate(MAX_LENGTH);
+ ConnectorIoHandler connectorHandler = new
ConnectorIoHandler(connectorReceiveBuffer);
+ IoConnector connector = createConnector(connectorHandler);
+
+ try {
+ ConnectFuture connectFuture =
connector.connect(acceptor.getLocalAddress());
+ boolean connected = connectFuture.awaitUninterruptibly(4L,
TimeUnit.SECONDS);
+
+ if (!connected) {
+ throw new RuntimeException("Failed to connect");
+ }
+
+ IoBuffer connectorSendBuffer =
IoBuffer.wrap(ByteBuffer.allocate(MAX_LENGTH));
+
+ for (int i = 0; i < connectorSendBuffer.limit(); i += 4) {
+ connectorSendBuffer.putInt(i);
+ }
+
+ connectorSendBuffer.flip();
+
+ IoSession session = connectFuture.getSession();
+ int messageLength = 65_536;
+
+ for (int i = 0; i < messageCount; i++) {
+ if (messageLength > MAX_LENGTH) {
+ throw new RuntimeException("Message length exceeds
send buffer capacity. Increase send buffer capacity");
+ }
+
+ connectorSendBuffer.limit(messageLength);
+ connectorSendBuffer.rewind();
+
+ CountDownLatch acceptorMessageReceivedLatch = new
CountDownLatch(1);
+ acceptorHandler.reset(acceptorMessageReceivedLatch,
messageLength);
+
+ CountDownLatch connectorMessageReceivedLatch = new
CountDownLatch(1);
+ connectorHandler.reset(connectorMessageReceivedLatch,
messageLength);
+
+ WriteFuture writeFuture =
session.write(connectorSendBuffer);
+ boolean written = writeFuture.awaitUninterruptibly(4L,
TimeUnit.SECONDS);
+
+ if (!written) {
+ throw new RuntimeException("Failed to write data");
+ }
+
+ boolean messageReceived =
acceptorMessageReceivedLatch.await(4L, TimeUnit.SECONDS);
+
+ if (!messageReceived) {
+ throw new RuntimeException("Failed to receive from
connector");
+ }
+
+ acceptorReceiveBuffer.flip();
+
+ for (int j = 0; j < acceptorReceiveBuffer.limit(); j += 4)
{
+ assertEquals(j, acceptorReceiveBuffer.getInt());
+ }
+
+ boolean connectorMessageReceived =
connectorMessageReceivedLatch.await(4L, TimeUnit.SECONDS);
+
+ if (!connectorMessageReceived) {
+ throw new RuntimeException("Failed to receive from
acceptor");
+ }
Review Comment:
Same here: surfacing an exception caught in the connectorHandler would be
useful.
Issue Time Tracking
-------------------
Worklog Id: (was: 1046468)
Time Spent: 3h 40m (was: 3.5h)
> Still having issue when dealing with TLS exchanges
> --------------------------------------------------
>
> Key: DIRMINA-1199
> URL: https://issues.apache.org/jira/browse/DIRMINA-1199
> Project: MINA
> Issue Type: Bug
> Affects Versions: 2.2.9
> Reporter: Emmanuel Lécharny
> Priority: Blocker
> Attachments: SslFilterTest.java
>
> Time Spent: 3h 40m
> Remaining Estimate: 0h
>
> When using TLS sessions in Apache DS, we are still facing errors:
>
> {code:java}
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] -
> Message received: HeapBuffer@575fd43e[pos=0 lim=16384 cap=50040: 00 00 FF 4E
> F7 4E 80 85 0B 59 39 C1 A9 80 C9 E8]
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] -
> Partial SASL message received: 16380/65358
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@18a79b83[mode=server, connected=true] forward_received() -
> received HeapBuffer@3bd3b4f5[pos=0 lim=16384 cap=33360: 40 A9 14 26 7A 1C 0B
> FD 75 B1 3A 0C A2 E2 56 08]
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] -
> Message received: HeapBuffer@3bd3b4f5[pos=0 lim=16384 cap=33360: 40 A9 14 26
> 7A 1C 0B FD 75 B1 3A 0C A2 E2 56 08]
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] -
> Partial SASL message received: 32764/65358
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@18a79b83[mode=server, connected=true] forward_received() -
> received HeapBuffer@7dc70c6b[pos=0 lim=16384 cap=16680: EB 43 18 7E A1 A2 3A
> 36 67 14 D3 D0 87 6B 06 0C]
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] -
> Message received: HeapBuffer@7dc70c6b[pos=0 lim=16384 cap=16680: EB 43 18 7E
> A1 A2 3A 36 67 14 D3 D0 87 6B 06 0C]
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] -
> Partial SASL message received: 49148/65358
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslFilter-] - SERVER: Session
> (0x00000001: nio socket, server, localhost/127.0.0.1:64618 =>
> /127.0.0.1:64617) received HeapBuffer@e33fa4a[pos=0 lim=65536 cap=65536: 17
> 03 03 3F 6A 00 00 00 00 00 00 00 10 B4 A7 45]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@18a79b83[mode=server, connected=true] receive() - message
> HeapBuffer@e33fa4a[pos=0 lim=65536 cap=65536: 17 03 03 3F 6A 00 00 00 00 00
> 00 00 10 B4 A7 45]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@18a79b83[mode=server, connected=true] receive_loop() - source
> HeapBuffer@e33fa4a[pos=0 lim=65536 cap=65536: 17 03 03 3F 6A 00 00 00 00 00
> 00 00 10 B4 A7 45]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@18a79b83[mode=server, connected=true] receive_loop() -
> bytes-consumed 16239, bytes-produced 16210, status OK, handshake
> NOT_HANDSHAKING
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@18a79b83[mode=server, connected=true] receive_loop() - result
> HeapBuffer@27e42196[pos=0 lim=16210 cap=66720: B6 B9 CE 9C FB 03 DF 94 98 05
> 0C 17 B2 04 10 F7]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@18a79b83[mode=server, connected=true] receive_loop() - trying to
> decode more messages, looping
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@18a79b83[mode=server, connected=true] receive_loop() - source
> HeapBuffer@e33fa4a[pos=16239 lim=65536 cap=65536: 17 03 03 40 18 00 00 00 00
> 00 00 00 12 C1 9E 57]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@18a79b83[mode=server, connected=true] forward_received() -
> received HeapBuffer@27e42196[pos=0 lim=16210 cap=66720: B6 B9 CE 9C FB 03 DF
> 94 98 05 0C 17 B2 04 10 F7]
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] -
> Message received: HeapBuffer@27e42196[pos=0 lim=16210 cap=66720: B6 B9 CE 9C
> FB 03 DF 94 98 05 0C 17 B2 04 10 F7]
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] - Will
> use SASL to unwrap received message of length: 65358
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] -
> Sending encrypted token of length 65362.
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslFilter-] - CLIENT: Session
> (0x00000002: nio socket, client, /127.0.0.1:64618 =>
> localhost/127.0.0.1:64617) write WriteRequest: HeapBuffer@39651a82[pos=0
> lim=65362 cap=65362: 00 00 FF 4E 74 34 15 26 CB F1 BD A5 4A FE A2 03]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write() - source
> WriteRequest: HeapBuffer@39651a82[pos=0 lim=65362 cap=65362: 00 00 FF 4E 74
> 34 15 26 CB F1 BD A5 4A FE A2 03]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - source
> WriteRequest: HeapBuffer@39651a82[pos=0 lim=65362 cap=65362: 00 00 FF 4E 74
> 34 15 26 CB F1 BD A5 4A FE A2 03]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() -
> bytes-consumed 16384, bytes-produced 16413, status OK, handshake
> NOT_HANDSHAKING
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - result
> WriteRequest: HeapBuffer@6be7bf6d[pos=0 lim=16413 cap=66836: 17 03 03 40 18
> 00 00 00 00 00 00 00 15 28 27 29]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - source
> WriteRequest: HeapBuffer@39651a82[pos=0 lim=65362 cap=65362: 00 00 FF 4E 74
> 34 15 26 CB F1 BD A5 4A FE A2 03]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() -
> bytes-consumed 16384, bytes-produced 16413, status OK, handshake
> NOT_HANDSHAKING
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - result
> WriteRequest: HeapBuffer@134c370e[pos=0 lim=16413 cap=50127: 17 03 03 40 18
> 00 00 00 00 00 00 00 16 16 4F AD]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - source
> WriteRequest: HeapBuffer@39651a82[pos=0 lim=65362 cap=65362: 00 00 FF 4E 74
> 34 15 26 CB F1 BD A5 4A FE A2 03]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() -
> bytes-consumed 16384, bytes-produced 16413, status OK, handshake
> NOT_HANDSHAKING
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - result
> WriteRequest: HeapBuffer@33364212[pos=0 lim=16413 cap=33418: 17 03 03 40 18
> 00 00 00 00 00 00 00 17 75 68 0E]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - source
> WriteRequest: HeapBuffer@39651a82[pos=0 lim=65362 cap=65362: 00 00 FF 4E 74
> 34 15 26 CB F1 BD A5 4A FE A2 03]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() -
> bytes-consumed 16210, bytes-produced 16239, status OK, handshake
> NOT_HANDSHAKING
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - result
> WriteRequest: HeapBuffer@2216effc[pos=0 lim=16239 cap=33418: 17 03 03 3F 6A
> 00 00 00 00 00 00 00 18 34 DB 4C]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] forward_writes() - writing
> WriteRequest: HeapBuffer@6be7bf6d[pos=0 lim=16413 cap=66836: 17 03 03 40 18
> 00 00 00 00 00 00 00 15 28 27 29]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] forward_writes() - writing
> WriteRequest: HeapBuffer@134c370e[pos=0 lim=16413 cap=50127: 17 03 03 40 18
> 00 00 00 00 00 00 00 16 16 4F AD]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] forward_writes() - writing
> WriteRequest: HeapBuffer@33364212[pos=0 lim=16413 cap=33418: 17 03 03 40 18
> 00 00 00 00 00 00 00 17 75 68 0E]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] forward_writes() - writing
> WriteRequest: HeapBuffer@2216effc[pos=0 lim=16239 cap=33418: 17 03 03 3F 6A
> 00 00 00 00 00 00 00 18 34 DB 4C]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslFilter-] - CLIENT: Session
> (0x00000002: nio socket, client, /127.0.0.1:64618 =>
> localhost/127.0.0.1:64617) ack WriteRequest: HeapBuffer@6be7bf6d[pos=0
> lim=16413 cap=66836: 17 03 03 40 18 00 00 00 00 00 00 00 15 28 27 29]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] ack() - accepted
> WriteRequest: HeapBuffer@6be7bf6d[pos=0 lim=16413 cap=66836: 17 03 03 40 18
> 00 00 00 00 00 00 00 15 28 27 29]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] ack() - checking to see if
> any messages can be flushed
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] flush() - no saved messages
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslFilter-] - CLIENT: Session
> (0x00000002: nio socket, client, /127.0.0.1:64618 =>
> localhost/127.0.0.1:64617) ack WriteRequest: HeapBuffer@134c370e[pos=0
> lim=16413 cap=50127: 17 03 03 40 18 00 00 00 00 00 00 00 16 16 4F AD]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] ack() - accepted
> WriteRequest: HeapBuffer@134c370e[pos=0 lim=16413 cap=50127: 17 03 03 40 18
> 00 00 00 00 00 00 00 16 16 4F AD]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] ack() - checking to see if
> any messages can be flushed
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] flush() - no saved messages
> [08:17:14] DEBUG [org.apache.mina.filter.codec.ProtocolCodecFilter-] -
> Processing a MESSAGE_RECEIVED for session 1
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslFilter-] - CLIENT: Session
> (0x00000002: nio socket, client, /127.0.0.1:64618 =>
> localhost/127.0.0.1:64617) ack WriteRequest: HeapBuffer@33364212[pos=0
> lim=16413 cap=33418: 17 03 03 40 18 00 00 00 00 00 00 00 17 75 68 0E]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] ack() - accepted
> WriteRequest: HeapBuffer@33364212[pos=0 lim=16413 cap=33418: 17 03 03 40 18
> 00 00 00 00 00 00 00 17 75 68 0E]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] ack() - checking to see if
> any messages can be flushed
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] flush() - no saved messages
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslFilter-] - CLIENT: Session
> (0x00000002: nio socket, client, /127.0.0.1:64618 =>
> localhost/127.0.0.1:64617) ack WriteRequest: HeapBuffer@2216effc[pos=0
> lim=16239 cap=33418: 17 03 03 3F 6A 00 00 00 00 00 00 00 18 34 DB 4C]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] ack() - accepted
> WriteRequest: HeapBuffer@2216effc[pos=0 lim=16239 cap=33418: 17 03 03 3F 6A
> 00 00 00 00 00 00 00 18 34 DB 4C]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] ack() - checking to see if
> any messages can be flushed
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] flush() - no saved messages
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] -
> Sending encrypted token of length 65362.
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslFilter-] - CLIENT: Session
> (0x00000002: nio socket, client, /127.0.0.1:64618 =>
> localhost/127.0.0.1:64617) write WriteRequest: HeapBuffer@745c2004[pos=0
> lim=65362 cap=65362: 00 00 FF 4E C3 BD 4E BB A1 34 51 77 DE 14 C3 EB]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write() - source
> WriteRequest: HeapBuffer@745c2004[pos=0 lim=65362 cap=65362: 00 00 FF 4E C3
> BD 4E BB A1 34 51 77 DE 14 C3 EB]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - source
> WriteRequest: HeapBuffer@745c2004[pos=0 lim=65362 cap=65362: 00 00 FF 4E C3
> BD 4E BB A1 34 51 77 DE 14 C3 EB]
> [08:17:14] WARN [org.apache.directory.server.ldap.LdapProtocolHandler-] -
> Unexpected exception forcing session to close: sending disconnect notice to
> client.
> javax.net.ssl.SSLException: Tag mismatch!
> at sun.security.ssl.Alert.createSSLException(Alert.java:133)
> at sun.security.ssl.TransportContext.fatal(TransportContext.java:324)
> at sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
> at sun.security.ssl.TransportContext.fatal(TransportContext.java:262)
> at sun.security.ssl.SSLTransport.decode(SSLTransport.java:119)
> at sun.security.ssl.SSLEngineImpl.decode(SSLEngineImpl.java:588)
> at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:544)
> at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:411)
> at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:390)
> at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:626)
> at
> org.apache.mina.filter.ssl.SSLHandlerG1.receive_loop(SSLHandlerG1.java:250)
> at
> org.apache.mina.filter.ssl.SSLHandlerG1.receive_loop(SSLHandlerG1.java:311)
> at
> org.apache.mina.filter.ssl.SSLHandlerG1.receive_start(SSLHandlerG1.java:201)
> at org.apache.mina.filter.ssl.SSLHandlerG1.receive(SSLHandlerG1.java:179)
> at
> org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:441)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
> at
> org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1224)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1213)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683)
> at
> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
> 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)
> Caused by: javax.crypto.AEADBadTagException: Tag mismatch!
> at
> com.sun.crypto.provider.GaloisCounterMode.decryptFinal(GaloisCounterMode.java:620)
> at com.sun.crypto.provider.CipherCore.finalNoPadding(CipherCore.java:1116)
> at
> com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1053)
> at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:941)
> at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:491)
> at javax.crypto.CipherSpi.bufferCrypt(CipherSpi.java:779)
> at javax.crypto.CipherSpi.engineDoFinal(CipherSpi.java:730)
> at javax.crypto.Cipher.doFinal(Cipher.java:2463)
> at
> sun.security.ssl.SSLCipher$T12GcmReadCipherGenerator$GcmReadCipher.decrypt(SSLCipher.java:1606)
> at
> sun.security.ssl.SSLEngineInputRecord.decodeInputRecord(SSLEngineInputRecord.java:240)
> at
> sun.security.ssl.SSLEngineInputRecord.decode(SSLEngineInputRecord.java:197)
> at
> sun.security.ssl.SSLEngineInputRecord.decode(SSLEngineInputRecord.java:160)
> at sun.security.ssl.SSLTransport.decode(SSLTransport.java:109)
> ... 25 more
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() -
> bytes-consumed 16384, bytes-produced 16413, status OK, handshake
> NOT_HANDSHAKING
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - result
> WriteRequest: HeapBuffer@6da9dc6[pos=0 lim=16413 cap=66836: 17 03 03 40 18 00
> 00 00 00 00 00 00 19 27 52 FA]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - source
> WriteRequest: HeapBuffer@745c2004[pos=0 lim=65362 cap=65362: 00 00 FF 4E C3
> BD 4E BB A1 34 51 77 DE 14 C3 EB]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() -
> bytes-consumed 16384, bytes-produced 16413, status OK, handshake
> NOT_HANDSHAKING
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - result
> WriteRequest: HeapBuffer@7fd69dd[pos=0 lim=16413 cap=50127: 17 03 03 40 18 00
> 00 00 00 00 00 00 1A C0 45 B5]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - source
> WriteRequest: HeapBuffer@745c2004[pos=0 lim=65362 cap=65362: 00 00 FF 4E C3
> BD 4E BB A1 34 51 77 DE 14 C3 EB]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() -
> bytes-consumed 16384, bytes-produced 16413, status OK, handshake
> NOT_HANDSHAKING
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - result
> WriteRequest: HeapBuffer@12010fd1[pos=0 lim=16413 cap=33418: 17 03 03 40 18
> 00 00 00 00 00 00 00 1B 69 6A 67]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - source
> WriteRequest: HeapBuffer@745c2004[pos=0 lim=65362 cap=65362: 00 00 FF 4E C3
> BD 4E BB A1 34 51 77 DE 14 C3 EB]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() -
> bytes-consumed 16210, bytes-produced 16239, status OK, handshake
> NOT_HANDSHAKING
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] write_loop() - result
> WriteRequest: HeapBuffer@7c84195[pos=0 lim=16239 cap=33418: 17 03 03 3F 6A 00
> 00 00 00 00 00 00 1C DE D6 41]
> [08:17:14] DEBUG [org.apache.mina.filter.ssl.SslHandler-] -
> SSLHandlerG1@49f42944[mode=client, connected=true] forward_writes() - writing
> WriteRequest: HeapBuffer@6da9dc6[pos=0 lim=16413 cap=66836: 17 03 03 40 18 00
> 00 00 00 00 00 00 19 27 52 FA]
> [08:17:14] DEBUG [org.apache.directory.api.ldap.codec.api.SaslFilter-] -
> Filtering write request: WriteRequest: MessageType : EXTENDED_RESPONSE
> Message ID : 0
> Extended Response
> ResponseName :'1.3.6.1.4.1.1466.20036'
> Ldap Result
> Result code : (PROTOCOL_ERROR) protocolError
> Matched Dn : 'null'
> Diagnostic message : 'PROTOCOL_ERROR: The server will
> disconnect!' {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]