You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2022/04/01 16:58:52 UTC

[mina] branch 2.2.X updated: o Fixed an issue with the setting of both NEED and WANT flags o Some minor code formatting

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 <el...@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);