From 7469f277aaff12b15be7e8fbc302b216d5e1adf3 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 26 Sep 2007 02:19:37 +0000
Subject: [PATCH] Update the appropriate identity mappers and certificate mappers to use the new isIndexed API in the backend to ensure that all referenced attributes are indexed for equality.

---
 opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java         |   54 ++++++
 opends/src/server/org/opends/server/extensions/RegularExpressionIdentityMapper.java                          |   51 ++++++
 opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java                             |   53 ++++++
 opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/ExactMatchIdentityMapperTestCase.java |    3 
 opends/src/server/org/opends/server/extensions/ExactMatchIdentityMapper.java                                 |   54 ++++++
 opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java                |   53 ++++++
 opends/src/messages/messages/extension.properties                                                            |   16 ++
 opends/tests/unit-tests-testng/resource/config-changes.ldif                                                  |  189 +++++++++++++++++++++++
 8 files changed, 454 insertions(+), 19 deletions(-)

diff --git a/opends/src/messages/messages/extension.properties b/opends/src/messages/messages/extension.properties
index 0fe023b..c46a3ab 100644
--- a/opends/src/messages/messages/extension.properties
+++ b/opends/src/messages/messages/extension.properties
@@ -1598,3 +1598,19 @@
  provided symmetric key extended request: %s
 MILD_ERR_GET_SYMMETRIC_KEY_DECODE_EXCEPTION_564=An unexpected error occurred \
  while attempting to decode the symmetric key extended request sequence: %s
+SEVERE_ERR_EXACTMAP_ATTR_UNINDEXED_565=The exact match identity mapper \
+ defined in configuration entry %s references attribute type %s which is does \
+ not have an equality index defined in backend %s
+SEVERE_ERR_REGEXMAP_ATTR_UNINDEXED_566=The regular expression identity mapper \
+ defined in configuration entry %s references attribute type %s which is does \
+ not have an equality index defined in backend %s
+SEVERE_ERR_FCM_ATTR_UNINDEXED_567=The fingerprint certificate mapper defined \
+ in configuration entry %s references attribute type %s which is does not \
+ have an equality index defined in backend %s
+SEVERE_ERR_SATUACM_ATTR_UNINDEXED_568=The subject attribute to user attribute \
+ certificate mapper defined in configuration entry %s references attribute \
+ type %s which is does not have an equality index defined in backend %s
+SEVERE_ERR_SDTUACM_ATTR_UNINDEXED_569=The subject DN to user attribute \
+ certificate mapper defined in configuration entry %s references attribute \
+ type %s which is does not have an equality index defined in backend %s
+ 
diff --git a/opends/src/server/org/opends/server/extensions/ExactMatchIdentityMapper.java b/opends/src/server/org/opends/server/extensions/ExactMatchIdentityMapper.java
index 799faea..12fd943 100644
--- a/opends/src/server/org/opends/server/extensions/ExactMatchIdentityMapper.java
+++ b/opends/src/server/org/opends/server/extensions/ExactMatchIdentityMapper.java
@@ -35,10 +35,12 @@
 import java.util.LinkedHashSet;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Set;
 
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.ExactMatchIdentityMapperCfg;
 import org.opends.server.admin.std.server.IdentityMapperCfg;
+import org.opends.server.api.Backend;
 import org.opends.server.api.IdentityMapper;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
@@ -51,6 +53,7 @@
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
+import org.opends.server.types.IndexType;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.SearchFilter;
@@ -118,10 +121,32 @@
     configEntryDN = currentConfig.dn();
 
 
-    // Get the attribute types to use for the searches.
+    // Get the attribute types to use for the searches.  Ensure that they are
+    // all indexed for equality.
     attributeTypes =
          currentConfig.getMatchAttribute().toArray(new AttributeType[0]);
 
+    Set<DN> cfgBaseDNs = configuration.getMatchBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    for (AttributeType t : attributeTypes)
+    {
+      for (DN baseDN : cfgBaseDNs)
+      {
+        Backend b = DirectoryServer.getBackend(baseDN);
+        if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+        {
+          throw new ConfigException(ERR_EXACTMAP_ATTR_UNINDEXED.get(
+                                         configuration.dn().toString(),
+                                         t.getNameOrOID(),
+                                         b.getBackendID()));
+        }
+      }
+    }
+
 
     // Create the attribute list to include in search requests.  We want to
     // include all user and operational attributes.
@@ -299,9 +324,32 @@
                       ExactMatchIdentityMapperCfg configuration,
                       List<Message> unacceptableReasons)
   {
-    // If we've gotten to this point, then the configuration should be
-    // acceptable.
     boolean configAcceptable = true;
+
+    // Make sure that all of the configured attributes are indexed for equality
+    // in all appropriate backends.
+    Set<DN> cfgBaseDNs = configuration.getMatchBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    for (AttributeType t : configuration.getMatchAttribute())
+    {
+      for (DN baseDN : cfgBaseDNs)
+      {
+        Backend b = DirectoryServer.getBackend(baseDN);
+        if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+        {
+          unacceptableReasons.add(ERR_EXACTMAP_ATTR_UNINDEXED.get(
+                                       configuration.dn().toString(),
+                                       t.getNameOrOID(),
+                                       b.getBackendID()));
+          configAcceptable = false;
+        }
+      }
+    }
+
     return configAcceptable;
   }
 
diff --git a/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java b/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
index d74ccbb..3c57872 100644
--- a/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
+++ b/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
@@ -25,7 +25,6 @@
  *      Portions Copyright 2007 Sun Microsystems, Inc.
  */
 package org.opends.server.extensions;
-import org.opends.messages.Message;
 
 
 
@@ -36,10 +35,13 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Set;
 
+import org.opends.messages.Message;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.CertificateMapperCfg;
 import org.opends.server.admin.std.server.FingerprintCertificateMapperCfg;
+import org.opends.server.api.Backend;
 import org.opends.server.api.CertificateMapper;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
@@ -53,15 +55,15 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
+import org.opends.server.types.IndexType;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.SearchFilter;
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.ExtensionMessages.*;
-
+import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -130,6 +132,27 @@
         fingerprintAlgorithm = "SHA1";
         break;
     }
+
+
+    // Make sure that the fingerprint attribute is configured for equality in
+    // all appropriate backends.
+    Set<DN> cfgBaseDNs = configuration.getUserBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    AttributeType t = configuration.getFingerprintAttribute();
+    for (DN baseDN : cfgBaseDNs)
+    {
+      Backend b = DirectoryServer.getBackend(baseDN);
+      if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+      {
+        throw new ConfigException(ERR_FCM_ATTR_UNINDEXED.get(
+                                       configuration.dn().toString(),
+                                       t.getNameOrOID(), b.getBackendID()));
+      }
+    }
   }
 
 
@@ -276,9 +299,29 @@
                       FingerprintCertificateMapperCfg configuration,
                       List<Message> unacceptableReasons)
   {
-    // If we've gotten to this point, then the configuration should be
-    // acceptable.
     boolean configAcceptable = true;
+
+    // Make sure that the fingerprint attribute is configured for equality in
+    // all appropriate backends.
+    Set<DN> cfgBaseDNs = configuration.getUserBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    AttributeType t = configuration.getFingerprintAttribute();
+    for (DN baseDN : cfgBaseDNs)
+    {
+      Backend b = DirectoryServer.getBackend(baseDN);
+      if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+      {
+        configAcceptable = false;
+        unacceptableReasons.add(ERR_FCM_ATTR_UNINDEXED.get(
+                                     configuration.dn().toString(),
+                                     t.getNameOrOID(), b.getBackendID()));
+      }
+    }
+
     return configAcceptable;
   }
 
diff --git a/opends/src/server/org/opends/server/extensions/RegularExpressionIdentityMapper.java b/opends/src/server/org/opends/server/extensions/RegularExpressionIdentityMapper.java
index 9fe1fed..885b12d 100644
--- a/opends/src/server/org/opends/server/extensions/RegularExpressionIdentityMapper.java
+++ b/opends/src/server/org/opends/server/extensions/RegularExpressionIdentityMapper.java
@@ -34,6 +34,7 @@
 import java.util.LinkedHashSet;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
@@ -41,6 +42,7 @@
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.RegularExpressionIdentityMapperCfg;
 import org.opends.server.admin.std.server.IdentityMapperCfg;
+import org.opends.server.api.Backend;
 import org.opends.server.api.IdentityMapper;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
@@ -53,6 +55,7 @@
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
+import org.opends.server.types.IndexType;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.SearchFilter;
@@ -144,10 +147,32 @@
     }
 
 
-    // Get the attribute types to use for the searches.
+    // Get the attribute types to use for the searches.  Ensure that they are
+    // all indexed for equality.
     attributeTypes =
          currentConfig.getMatchAttribute().toArray(new AttributeType[0]);
 
+    Set<DN> cfgBaseDNs = configuration.getMatchBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    for (AttributeType t : attributeTypes)
+    {
+      for (DN baseDN : cfgBaseDNs)
+      {
+        Backend b = DirectoryServer.getBackend(baseDN);
+        if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+        {
+          throw new ConfigException(ERR_REGEXMAP_ATTR_UNINDEXED.get(
+                                         configuration.dn().toString(),
+                                         t.getNameOrOID(),
+                                         b.getBackendID()));
+        }
+      }
+    }
+
 
     // Create the attribute list to include in search requests.  We want to
     // include all user and operational attributes.
@@ -324,6 +349,30 @@
   {
     boolean configAcceptable = true;
 
+    // Make sure that all of the configured attributes are indexed for equality
+    // in all appropriate backends.
+    Set<DN> cfgBaseDNs = configuration.getMatchBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    for (AttributeType t : configuration.getMatchAttribute())
+    {
+      for (DN baseDN : cfgBaseDNs)
+      {
+        Backend b = DirectoryServer.getBackend(baseDN);
+        if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+        {
+          unacceptableReasons.add(ERR_REGEXMAP_ATTR_UNINDEXED.get(
+                                       configuration.dn().toString(),
+                                       t.getNameOrOID(),
+                                       b.getBackendID()));
+          configAcceptable = false;
+        }
+      }
+    }
+
     // Make sure that we can parse the match pattern.
     try
     {
diff --git a/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java b/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
index 3cfb57b..7571da0 100644
--- a/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
+++ b/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
@@ -25,7 +25,6 @@
  *      Portions Copyright 2007 Sun Microsystems, Inc.
  */
 package org.opends.server.extensions;
-import org.opends.messages.Message;
 
 
 
@@ -37,11 +36,14 @@
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Set;
 
+import org.opends.messages.Message;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.CertificateMapperCfg;
 import org.opends.server.admin.std.server.
             SubjectAttributeToUserAttributeCertificateMapperCfg;
+import org.opends.server.api.Backend;
 import org.opends.server.api.CertificateMapper;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
@@ -54,6 +56,7 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
+import org.opends.server.types.IndexType;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.RDN;
 import org.opends.server.types.ResultCode;
@@ -61,9 +64,8 @@
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.ExtensionMessages.*;
-
+import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -174,6 +176,28 @@
 
       attributeMap.put(certAttrName, userAttrType);
     }
+
+    // Make sure that all the user attributes are configured with equality
+    // indexes in all appropriate backends.
+    Set<DN> cfgBaseDNs = configuration.getUserBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    for (DN baseDN : cfgBaseDNs)
+    {
+      for (AttributeType t : attributeMap.values())
+      {
+        Backend b = DirectoryServer.getBackend(baseDN);
+        if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+        {
+          throw new ConfigException(ERR_SATUACM_ATTR_UNINDEXED.get(
+                                         configuration.dn().toString(),
+                                         t.getNameOrOID(), b.getBackendID()));
+        }
+      }
+    }
   }
 
 
@@ -401,6 +425,30 @@
     }
 
 
+    // Make sure that all the user attributes are configured with equality
+    // indexes in all appropriate backends.
+    Set<DN> cfgBaseDNs = configuration.getUserBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    for (DN baseDN : cfgBaseDNs)
+    {
+      for (AttributeType t : newAttributeMap.values())
+      {
+        Backend b = DirectoryServer.getBackend(baseDN);
+        if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+        {
+          configAcceptable = false;
+          unacceptableReasons.add(ERR_SATUACM_ATTR_UNINDEXED.get(
+                                       configuration.dn().toString(),
+                                       t.getNameOrOID(), b.getBackendID()));
+        }
+      }
+    }
+
+
     return configAcceptable;
   }
 
diff --git a/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java b/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
index 5650705..a618f49 100644
--- a/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
+++ b/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
@@ -25,7 +25,6 @@
  *      Portions Copyright 2007 Sun Microsystems, Inc.
  */
 package org.opends.server.extensions;
-import org.opends.messages.Message;
 
 
 
@@ -34,11 +33,14 @@
 import javax.security.auth.x500.X500Principal;
 import java.util.Collection;
 import java.util.List;
+import java.util.Set;
 
+import org.opends.messages.Message;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.CertificateMapperCfg;
 import org.opends.server.admin.std.server.
             SubjectDNToUserAttributeCertificateMapperCfg;
+import org.opends.server.api.Backend;
 import org.opends.server.api.CertificateMapper;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
@@ -52,15 +54,15 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
+import org.opends.server.types.IndexType;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.SearchFilter;
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.ExtensionMessages.*;
-
+import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -114,6 +116,27 @@
 
     currentConfig = configuration;
     configEntryDN = configuration.dn();
+
+
+    // Make sure that the subject attribute is configured for equality in all
+    // appropriate backends.
+    Set<DN> cfgBaseDNs = configuration.getUserBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    AttributeType t = configuration.getSubjectAttribute();
+    for (DN baseDN : cfgBaseDNs)
+    {
+      Backend b = DirectoryServer.getBackend(baseDN);
+      if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+      {
+        throw new ConfigException(ERR_SDTUACM_ATTR_UNINDEXED.get(
+                                       configuration.dn().toString(),
+                                       t.getNameOrOID(), b.getBackendID()));
+      }
+    }
   }
 
 
@@ -239,9 +262,29 @@
                            configuration,
                       List<Message> unacceptableReasons)
   {
-    // If we've gotten to this point, then the configuration should be
-    // acceptable.
     boolean configAcceptable = true;
+
+    // Make sure that the subject attribute is configured for equality in all
+    // appropriate backends.
+    Set<DN> cfgBaseDNs = configuration.getUserBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    AttributeType t = configuration.getSubjectAttribute();
+    for (DN baseDN : cfgBaseDNs)
+    {
+      Backend b = DirectoryServer.getBackend(baseDN);
+      if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+      {
+        configAcceptable = false;
+        unacceptableReasons.add(ERR_SDTUACM_ATTR_UNINDEXED.get(
+                                     configuration.dn().toString(),
+                                     t.getNameOrOID(), b.getBackendID()));
+      }
+    }
+
     return configAcceptable;
   }
 
diff --git a/opends/tests/unit-tests-testng/resource/config-changes.ldif b/opends/tests/unit-tests-testng/resource/config-changes.ldif
index 8f30268..96cb0a1 100644
--- a/opends/tests/unit-tests-testng/resource/config-changes.ldif
+++ b/opends/tests/unit-tests-testng/resource/config-changes.ldif
@@ -453,6 +453,34 @@
 ds-cfg-index-attribute: employeeNumber
 ds-cfg-index-type: equality
 
+dn: ds-cfg-index-attribute=ds-certificate-subject-dn,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-subject-dn
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=ds-certificate-fingerprint,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-fingerprint
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=manager,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: manager
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=o,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: o
+ds-cfg-index-type: equality
+
 dn: ds-cfg-index-attribute=seeAlso,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config
 changetype: add
 objectClass: top
@@ -519,6 +547,34 @@
 ds-cfg-index-attribute: employeeNumber
 ds-cfg-index-type: equality
 
+dn: ds-cfg-index-attribute=ds-certificate-subject-dn,cn=Index,ds-cfg-backend-id=unindexedRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-subject-dn
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=ds-certificate-fingerprint,cn=Index,ds-cfg-backend-id=unindexedRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-fingerprint
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=manager,cn=Index,ds-cfg-backend-id=unindexedRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: manager
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=o,cn=Index,ds-cfg-backend-id=unindexedRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: o
+ds-cfg-index-type: equality
+
 dn: ds-cfg-index-attribute=seeAlso,cn=Index,ds-cfg-backend-id=unindexedRoot,cn=Backends,cn=config
 changetype: add
 objectClass: top
@@ -547,6 +603,13 @@
 ds-cfg-index-attribute: pager
 ds-cfg-index-type: equality
 
+dn: ds-cfg-index-attribute=cn,cn=Index,ds-cfg-backend-id=unindexedRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: cn
+ds-cfg-index-type: equality
+
 dn: ds-cfg-index-attribute=sn,cn=Index,ds-cfg-backend-id=unindexedRoot,cn=Backends,cn=config
 changetype: add
 objectClass: top
@@ -660,6 +723,34 @@
 ds-cfg-index-attribute: employeeNumber
 ds-cfg-index-type: equality
 
+dn: ds-cfg-index-attribute=ds-certificate-subject-dn,cn=Index,ds-cfg-backend-id=rebuildRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-subject-dn
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=ds-certificate-fingerprint,cn=Index,ds-cfg-backend-id=rebuildRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-fingerprint
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=manager,cn=Index,ds-cfg-backend-id=rebuildRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: manager
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=o,cn=Index,ds-cfg-backend-id=rebuildRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: o
+ds-cfg-index-type: equality
+
 dn: ds-cfg-index-attribute=seeAlso,cn=Index,ds-cfg-backend-id=rebuildRoot,cn=Backends,cn=config
 changetype: add
 objectClass: top
@@ -695,6 +786,13 @@
 ds-cfg-index-attribute: uid
 ds-cfg-index-type: equality
 
+dn: ds-cfg-index-attribute=cn,cn=Index,ds-cfg-backend-id=rebuildRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: cn
+ds-cfg-index-type: equality
+
 dn: ds-cfg-index-attribute=sn,cn=Index,ds-cfg-backend-id=rebuildRoot,cn=Backends,cn=config
 changetype: add
 objectClass: top
@@ -798,6 +896,34 @@
 ds-cfg-index-attribute: mail
 ds-cfg-index-type: equality
 
+dn: ds-cfg-index-attribute=ds-certificate-subject-dn,cn=Index,ds-cfg-backend-id=importRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-subject-dn
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=ds-certificate-fingerprint,cn=Index,ds-cfg-backend-id=importRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-fingerprint
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=manager,cn=Index,ds-cfg-backend-id=importRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: manager
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=o,cn=Index,ds-cfg-backend-id=importRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: o
+ds-cfg-index-type: equality
+
 dn: ds-cfg-index-attribute=seeAlso,cn=Index,ds-cfg-backend-id=importRoot,cn=Backends,cn=config
 changetype: add
 objectClass: top
@@ -826,6 +952,13 @@
 ds-cfg-index-attribute: pager
 ds-cfg-index-type: equality
 
+dn: ds-cfg-index-attribute=cn,cn=Index,ds-cfg-backend-id=importRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: cn
+ds-cfg-index-type: equality
+
 dn: ds-cfg-index-attribute=sn,cn=Index,ds-cfg-backend-id=importRoot,cn=Backends,cn=config
 changetype: add
 objectClass: top
@@ -1009,6 +1142,34 @@
 ds-cfg-index-attribute: employeeNumber
 ds-cfg-index-type: equality
 
+dn: ds-cfg-index-attribute=ds-certificate-subject-dn,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-subject-dn
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=ds-certificate-fingerprint,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-fingerprint
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=manager,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: manager
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=o,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: o
+ds-cfg-index-type: equality
+
 dn: ds-cfg-index-attribute=seeAlso,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config
 changetype: add
 objectClass: top
@@ -1192,6 +1353,34 @@
 ds-cfg-index-attribute: bootParameter
 ds-cfg-index-type: equality
 
+dn: ds-cfg-index-attribute=ds-certificate-subject-dn,cn=Index,ds-cfg-backend-id=indexRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-subject-dn
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=ds-certificate-fingerprint,cn=Index,ds-cfg-backend-id=indexRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: ds-certificate-fingerprint
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=manager,cn=Index,ds-cfg-backend-id=indexRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: manager
+ds-cfg-index-type: equality
+
+dn: ds-cfg-index-attribute=o,cn=Index,ds-cfg-backend-id=indexRoot,cn=Backends,cn=config
+changetype: add
+objectClass: top
+objectClass: ds-cfg-je-index
+ds-cfg-index-attribute: o
+ds-cfg-index-type: equality
+
 dn: ds-cfg-index-attribute=seeAlso,cn=Index,ds-cfg-backend-id=indexRoot,cn=Backends,cn=config
 changetype: add
 objectClass: top
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/ExactMatchIdentityMapperTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/ExactMatchIdentityMapperTestCase.java
index 3fa63a2..7891f18 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/ExactMatchIdentityMapperTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/ExactMatchIdentityMapperTestCase.java
@@ -37,8 +37,7 @@
 
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.server.AdminTestCaseUtils;
-import org.opends.server.admin.std.meta.
-            ExactMatchIdentityMapperCfgDefn;
+import org.opends.server.admin.std.meta.ExactMatchIdentityMapperCfgDefn;
 import org.opends.server.admin.std.server.ExactMatchIdentityMapperCfg;
 import org.opends.server.api.IdentityMapper;
 import org.opends.server.config.ConfigEntry;

--
Gitblit v1.10.0