This is an automated email from the ASF dual-hosted git repository. elecharny pushed a commit to branch 2.2.X in repository https://gitbox.apache.org/repos/asf/mina.git
The following commit(s) were added to refs/heads/2.2.X by this push: new d57397c o Fixed an issue with the setting of both NEED and WANT flags o Some minor code formatting d57397c is described below commit d57397c3db02b3a8148cd8ff6034f54b212f136a Author: emmanuel lecharny <elecha...@apache.org> AuthorDate: Fri Apr 1 18:58:25 2022 +0200 o Fixed an issue with the setting of both NEED and WANT flags o Some minor code formatting --- .../org/apache/mina/filter/logging/MdcInjectionFilter.java | 8 ++++++-- .../main/java/org/apache/mina/filter/ssl/SSLHandlerG0.java | 6 ++---- .../src/main/java/org/apache/mina/filter/ssl/SslFilter.java | 12 ++++++++++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/mina-core/src/main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java b/mina-core/src/main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java index 45f7afc..ed3979f 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java +++ b/mina-core/src/main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java @@ -20,11 +20,11 @@ package org.apache.mina.filter.logging; import java.net.InetSocketAddress; +import java.util.Arrays; import java.util.EnumSet; import java.util.HashSet; import java.util.Map; import java.util.Set; -import java.util.Arrays; import java.util.concurrent.ConcurrentHashMap; import org.apache.mina.core.filterchain.IoFilterEvent; @@ -136,7 +136,7 @@ public class MdcInjectionFilter extends CommonEventFilter { * Create a new MdcInjectionFilter instance */ public MdcInjectionFilter() { - this.mdcKeys = EnumSet.allOf(MdcKey.class); + mdcKeys = EnumSet.allOf(MdcKey.class); } /** @@ -166,6 +166,7 @@ public class MdcInjectionFilter extends CommonEventFilter { for (String key : context.keySet()) { MDC.remove(key); } + callDepth.remove(); } else { callDepth.set(currentCallDepth); @@ -175,9 +176,11 @@ public class MdcInjectionFilter extends CommonEventFilter { private Map<String, String> getAndFillContext(final IoSession session) { Map<String, String> context = getContext(session); + if (context.isEmpty()) { fillContext(session, context); } + return context; } @@ -189,6 +192,7 @@ public class MdcInjectionFilter extends CommonEventFilter { context = new ConcurrentHashMap<>(); session.setAttribute(CONTEXT_KEY, context); } + return context; } diff --git a/mina-core/src/main/java/org/apache/mina/filter/ssl/SSLHandlerG0.java b/mina-core/src/main/java/org/apache/mina/filter/ssl/SSLHandlerG0.java index 31c35f5..53d2da9 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/ssl/SSLHandlerG0.java +++ b/mina-core/src/main/java/org/apache/mina/filter/ssl/SSLHandlerG0.java @@ -427,8 +427,7 @@ public class SSLHandlerG0 extends SslHandler { LOGGER.debug("{} write_user_loop() - handshake needs task, scheduling", toString()); } - //schedule_task(next); - execute_task(next); + schedule_task(next); break; case NEED_WRAP: @@ -562,8 +561,7 @@ public class SSLHandlerG0 extends SslHandler { LOGGER.debug("{} write_handshake_loop() - handshake needs task, scheduling", toString()); } - //schedule_task(next); - execute_task(next); + schedule_task(next); break; case FINISHED: diff --git a/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java b/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java index 2503d26..1b93f5e 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java +++ b/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java @@ -271,8 +271,16 @@ public class SslFilter extends IoFilterAdapter { protected SSLEngine createEngine(IoSession session, InetSocketAddress addr) { SSLEngine sslEngine = (addr != null) ? sslContext.createSSLEngine(addr.getHostString(), addr.getPort()) : sslContext.createSSLEngine(); - sslEngine.setNeedClientAuth(needClientAuth); - sslEngine.setWantClientAuth(wantClientAuth); + + // Always start with WANT, which will be squashed by NEED if NEED is true. + // Actually, it makes not a lot of sense to select NEED and WANT. NEED >> WANT... + if (wantClientAuth) { + sslEngine.setWantClientAuth(true); + } + + if (needClientAuth) { + sslEngine.setNeedClientAuth(true); + } if (enabledCipherSuites != null) { sslEngine.setEnabledCipherSuites(enabledCipherSuites);