You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by co...@apache.org on 2021/05/10 13:06:34 UTC

[directory-server] branch master updated: DIRSERVER-2329 - Replication trust manager improvements (#43)

This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-server.git


The following commit(s) were added to refs/heads/master by this push:
     new 99c8e24  DIRSERVER-2329 - Replication trust manager improvements (#43)
99c8e24 is described below

commit 99c8e24f4d945ea6733cfdb6fd90b7c286ed8b23
Author: Colm O hEigeartaigh <co...@users.noreply.github.com>
AuthorDate: Mon May 10 14:06:25 2021 +0100

    DIRSERVER-2329 - Replication trust manager improvements (#43)
---
 .../server/ldap/replication/ReplicationTrustManager.java         | 6 +++---
 .../directory/server/ldap/replication/SyncReplConfiguration.java | 6 +++---
 .../org/apache/directory/server/annotations/CreateConsumer.java  | 9 ---------
 .../directory/server/factory/ServerAnnotationProcessor.java      | 1 +
 4 files changed, 7 insertions(+), 15 deletions(-)

diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicationTrustManager.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicationTrustManager.java
index 2b62e86..108e07c 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicationTrustManager.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/ReplicationTrustManager.java
@@ -62,9 +62,6 @@ public final class ReplicationTrustManager implements X509TrustManager
     /** the X509 certificate parser */
     private static X509CertParser parser = new X509CertParser();
 
-    /** the singleton instance of this trust manager */
-    private static final ReplicationTrustManager INSTANCE = new ReplicationTrustManager();
-
     static
     {
         try
@@ -78,6 +75,9 @@ public final class ReplicationTrustManager implements X509TrustManager
         }
     }
 
+    /** the singleton instance of this trust manager */
+    private static final ReplicationTrustManager INSTANCE = new ReplicationTrustManager();
+
     /**
      * Creates a instance of ReplicationTrustManager
      */
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplConfiguration.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplConfiguration.java
index 0fb0641..7634b62 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplConfiguration.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/SyncReplConfiguration.java
@@ -57,7 +57,7 @@ import org.apache.directory.ldap.client.api.NoVerificationTrustManager;
  *   <li>cookie : the replication cookie</li>
  *   <li>useTls : the connection uses TLS, defaults to true</li>
  *   <li>strictCertVerification : strictly verify the certificate, defaults to true</li>
- *   <li>trustManager : the trustManager to use, defaults to @link{NoVerificationTrustManager}</li>
+ *   <li>trustManager : the trustManager to use, defaults to @link{ReplicationTrustManager}</li>
  *   <li></li>
  * </ul>
  * 
@@ -127,8 +127,8 @@ public class SyncReplConfiguration implements ReplicationConsumerConfig
     /** flag to indicate the use of strict certificate verification, default is true */
     private boolean strictCertVerification = true;
 
-    /** the X509 certificate trust manager used, default value set to {@link NoVerificationTrustManager} */
-    private X509TrustManager trustManager = new NoVerificationTrustManager();
+    /** the X509 certificate trust manager used, default value set to {@link ReplicationTrustManager} */
+    private X509TrustManager trustManager = ReplicationTrustManager.getInstance();
 
     /** flag to indicate if this node is part of a MMR setup, default value is true */
     private boolean mmrMode = true;
diff --git a/server-annotations/src/main/java/org/apache/directory/server/annotations/CreateConsumer.java b/server-annotations/src/main/java/org/apache/directory/server/annotations/CreateConsumer.java
index ec768a2..c01beef 100644
--- a/server-annotations/src/main/java/org/apache/directory/server/annotations/CreateConsumer.java
+++ b/server-annotations/src/main/java/org/apache/directory/server/annotations/CreateConsumer.java
@@ -30,7 +30,6 @@ import java.lang.annotation.Target;
 import org.apache.directory.api.ldap.model.constants.LdapConstants;
 import org.apache.directory.api.ldap.model.message.AliasDerefMode;
 import org.apache.directory.api.ldap.model.message.SearchScope;
-import org.apache.directory.ldap.client.api.NoVerificationTrustManager;
 
 
 /**
@@ -55,7 +54,6 @@ import org.apache.directory.ldap.client.api.NoVerificationTrustManager;
  *   <li>chaseReferrals : tells if we chase referrals, defaults to false</li>
  *   <li>useTls : the connection uses TLS, defaults to true</li>
  *   <li>strictCertVerification : strictly verify the certificate, defaults to true</li>
- *   <li>trustManager : the trustManager to use, defaults to @link{NoVerificationTrustManager}</li>
  * </ul>
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -208,11 +206,4 @@ public @interface CreateConsumer
      */
     boolean strictCertVerification() default true;
 
-
-    /** 
-     * The X509 certificate trust manager used, default value set to {@link NoVerificationTrustManager}
-     * 
-     *  @return The trust manager class
-     */
-    Class<?> trustManager() default NoVerificationTrustManager.class;
 }
diff --git a/server-annotations/src/main/java/org/apache/directory/server/factory/ServerAnnotationProcessor.java b/server-annotations/src/main/java/org/apache/directory/server/factory/ServerAnnotationProcessor.java
index aa2016a..fd115d4 100644
--- a/server-annotations/src/main/java/org/apache/directory/server/factory/ServerAnnotationProcessor.java
+++ b/server-annotations/src/main/java/org/apache/directory/server/factory/ServerAnnotationProcessor.java
@@ -271,6 +271,7 @@ public final class ServerAnnotationProcessor
         config.setUseTls( createConsumer.useTls() );
         config.setBaseDn( createConsumer.baseDn() );
         config.setRefreshInterval( createConsumer.refreshInterval() );
+        config.setStrictCertVerification( createConsumer.strictCertVerification() );
 
         consumer.setConfig( config );