From c46ff78c545272ec2fc5679b22c39eae239636c6 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Thu, 24 Jan 2008 09:09:54 +0000
Subject: [PATCH] FIx for issue #2602 (index creation should not be required when changing objects configuration)
---
opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java | 58 +++++++++---------
opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java | 52 +++++++++--------
opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java | 11 ++-
opends/src/messages/messages/extension.properties | 2
4 files changed, 63 insertions(+), 60 deletions(-)
diff --git a/opends/src/messages/messages/extension.properties b/opends/src/messages/messages/extension.properties
index f024d0a..09d3156 100644
--- a/opends/src/messages/messages/extension.properties
+++ b/opends/src/messages/messages/extension.properties
@@ -1622,7 +1622,7 @@
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 \
+SEVERE_WARN_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 \
diff --git a/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java b/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
index 3c57872..f5d18dd 100644
--- a/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
+++ b/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2007 Sun Microsystems, Inc.
+ * Portions Copyright 2007-2008 Sun Microsystems, Inc.
*/
package org.opends.server.extensions;
@@ -45,6 +45,7 @@
import org.opends.server.api.CertificateMapper;
import org.opends.server.config.ConfigException;
import org.opends.server.core.DirectoryServer;
+import org.opends.server.loggers.ErrorLogger;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.protocols.internal.InternalSearchOperation;
@@ -148,9 +149,10 @@
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()));
+ Message message = WARN_SATUACM_ATTR_UNINDEXED.get(
+ configuration.dn().toString(),
+ t.getNameOrOID(), b.getBackendID());
+ ErrorLogger.logError(message);
}
}
}
@@ -301,27 +303,6 @@
{
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;
}
@@ -357,6 +338,27 @@
currentConfig = configuration;
}
+ // 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)))
+ {
+ Message message = WARN_SATUACM_ATTR_UNINDEXED.get(
+ configuration.dn().toString(),
+ t.getNameOrOID(), b.getBackendID());
+ messages.add(message);
+ ErrorLogger.logError(message);
+ }
+ }
return new ConfigChangeResult(resultCode, adminActionRequired, messages);
}
diff --git a/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java b/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
index 7571da0..5e1c918 100644
--- a/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
+++ b/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2007 Sun Microsystems, Inc.
+ * Portions Copyright 2007-2008 Sun Microsystems, Inc.
*/
package org.opends.server.extensions;
@@ -47,6 +47,7 @@
import org.opends.server.api.CertificateMapper;
import org.opends.server.config.ConfigException;
import org.opends.server.core.DirectoryServer;
+import org.opends.server.loggers.ErrorLogger;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.protocols.internal.InternalSearchOperation;
@@ -192,9 +193,10 @@
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()));
+ Message message = WARN_SATUACM_ATTR_UNINDEXED.get(
+ configuration.dn().toString(),
+ t.getNameOrOID(), b.getBackendID());
+ ErrorLogger.logError(message);
}
}
}
@@ -424,31 +426,6 @@
newAttributeMap.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 : 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;
}
@@ -552,6 +529,29 @@
newAttributeMap.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 : newAttributeMap.values())
+ {
+ Backend b = DirectoryServer.getBackend(baseDN);
+ if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+ {
+ Message message = WARN_SATUACM_ATTR_UNINDEXED.get(
+ configuration.dn().toString(),
+ t.getNameOrOID(), b.getBackendID());
+ messages.add(message);
+ ErrorLogger.logError(message);
+ }
+ }
+ }
if (resultCode == ResultCode.SUCCESS)
{
diff --git a/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java b/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
index a618f49..504bc5f 100644
--- a/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
+++ b/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2007 Sun Microsystems, Inc.
+ * Portions Copyright 2007-2008 Sun Microsystems, Inc.
*/
package org.opends.server.extensions;
@@ -44,6 +44,7 @@
import org.opends.server.api.CertificateMapper;
import org.opends.server.config.ConfigException;
import org.opends.server.core.DirectoryServer;
+import org.opends.server.loggers.ErrorLogger;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.protocols.internal.InternalSearchOperation;
@@ -63,7 +64,6 @@
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.loggers.debug.DebugLogger.*;
-import static org.opends.server.util.StaticUtils.*;
@@ -132,9 +132,10 @@
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()));
+ Message message = WARN_SATUACM_ATTR_UNINDEXED.get(
+ configuration.dn().toString(),
+ t.getNameOrOID(), b.getBackendID());
+ ErrorLogger.logError(message);
}
}
}
--
Gitblit v1.10.0