opendj-core/src/main/java/org/forgerock/opendj/ldap/AttributeFilter.java
@@ -336,7 +336,7 @@ } else if (attributeDescription.startsWith("@") && attributeDescription.length() > 1) { final String objectClassName = attributeDescription.substring(1); final ObjectClass objectClass = schema.getObjectClass(objectClassName); if (objectClass != null) { if (!objectClass.isPlaceHolder()) { allocatedRequestedAttributes(); for (final AttributeType at : objectClass.getRequiredAttributes()) { final AttributeDescription ad = AttributeDescription.create(at); opendj-core/src/main/java/org/forgerock/opendj/ldap/Entries.java
@@ -697,7 +697,7 @@ final String objectClassName = v.toString(); final ObjectClass objectClass; try { objectClass = schema.getObjectClass(objectClassName); objectClass = schema.asStrictSchema().getObjectClass(objectClassName); objectClasses.add(objectClass); } catch (final UnknownSchemaElementException e) { // Ignore. @@ -812,7 +812,7 @@ final String objectClassName = v.toString(); final ObjectClass objectClass; try { objectClass = schema.getObjectClass(objectClassName); objectClass = schema.asStrictSchema().getObjectClass(objectClassName); } catch (final UnknownSchemaElementException e) { // Ignore. continue; opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRule.java
@@ -770,7 +770,7 @@ // or is not structural, then fail. if (structuralClassOID != null) { try { structuralClass = schema.getObjectClass(structuralClassOID); structuralClass = schema.asStrictSchema().getObjectClass(structuralClassOID); } catch (final UnknownSchemaElementException e) { final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS1.get(getNameOrOID(), @@ -791,7 +791,7 @@ ObjectClass objectClass; for (final String oid : auxiliaryClassOIDs) { try { objectClass = schema.getObjectClass(oid); objectClass = schema.asStrictSchema().getObjectClass(oid); } catch (final UnknownSchemaElementException e) { // This isn't good because it is an unknown auxiliary class. final LocalizableMessage message = opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java
@@ -849,7 +849,7 @@ ObjectClass superiorClass; for (final String superClassOid : superiorClassOIDs) { try { superiorClass = schema.getObjectClass(superClassOid); superiorClass = schema.asStrictSchema().getObjectClass(superClassOid); } catch (final UnknownSchemaElementException e) { final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS1.get( opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java
@@ -1768,7 +1768,7 @@ final String objectClassName = v.toString(); final ObjectClass objectClass; try { objectClass = getObjectClass(objectClassName); objectClass = asStrictSchema().getObjectClass(objectClassName); objectClasses.add(objectClass); } catch (final UnknownSchemaElementException e) { if (policy.checkAttributesAndObjectClasses().needsChecking()) { opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java
@@ -581,7 +581,7 @@ for (ObjectClass oc1 : ocs1) { ObjectClass oc2 = schema2.getObjectClass(oc1.getNameOrOID()); if (oc2 == null || !areObjectClassesEqual(oc1, oc2)) if (oc2.isPlaceHolder() || !areObjectClassesEqual(oc1, oc2)) { return false; } @@ -633,7 +633,6 @@ private static boolean areObjectClassesEqual(ObjectClass oc1, ObjectClass oc2) { return oc1.getOID().equals(oc2.getOID()) && oc1.isExtensibleObject() == oc2.isExtensibleObject() && areEqual(getDefinitionWithFileName(oc1), getDefinitionWithFileName(oc2)) && areEqual(oc1.getDescription(), oc2.getDescription()) && areEqual(oc1.getObjectClassType(), oc2.getObjectClassType()) opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java
@@ -65,6 +65,7 @@ import org.forgerock.i18n.LocalizableMessage; import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.guitools.controlpanel.browser.NodeRefresher; import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo; import org.opends.guitools.controlpanel.datamodel.CustomSearchResult; @@ -79,7 +80,6 @@ import org.opends.guitools.controlpanel.ui.nodes.DndBrowserNodes; import org.opends.guitools.controlpanel.util.LDAPEntryReader; import org.opends.guitools.controlpanel.util.Utilities; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.Schema; import org.opends.server.util.ServerConstants; @@ -458,13 +458,12 @@ Schema schema = getInfo().getServerDescriptor().getSchema(); if (ocs != null && schema != null) { AttributeType attr = schema.getAttributeType( ServerConstants.ATTR_USER_PASSWORD); AttributeType attr = schema.getAttributeType(ServerConstants.ATTR_USER_PASSWORD); for (String oc : ocs) { ObjectClass objectClass = schema.getObjectClass(oc); if (objectClass != null && attr != null if (!attr.isPlaceHolder() && !objectClass.isPlaceHolder() && objectClass.isRequiredOrOptional(attr)) { return true; opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/SchemaElementPanel.java
@@ -110,19 +110,16 @@ protected void objectClassSelected(JList<?> list) { String o = (String)list.getSelectedValue(); if (o != null) { Schema schema = getInfo().getServerDescriptor().getSchema(); if (schema != null) if (o != null && schema != null) { ObjectClass oc = schema.getObjectClass(o.toLowerCase()); if (oc != null) if (!oc.isPlaceHolder()) { notifySchemaSelectionListeners(oc); } } } } /** * Returns the list of aliases for the provided attribute. opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/SimplifiedViewEntryPanel.java
@@ -76,6 +76,7 @@ import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.RDN; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.forgerock.opendj.ldap.schema.Syntax; import org.opends.guitools.controlpanel.datamodel.BinaryValue; import org.opends.guitools.controlpanel.datamodel.CheckEntrySyntaxException; @@ -91,7 +92,6 @@ import org.opends.server.schema.SchemaConstants; import org.opends.server.types.Entry; import org.opends.server.types.LDIFImportConfig; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.OpenDsException; import org.opends.server.types.Schema; import org.opends.server.util.Base64; @@ -720,7 +720,7 @@ { String oc = (String)o; ObjectClass objectClass = schema.getObjectClass(oc.toLowerCase()); if (objectClass != null) if (!objectClass.isPlaceHolder()) { for (AttributeType attr : objectClass.getRequiredAttributes()) { @@ -1153,11 +1153,10 @@ if (!attrType.isPlaceHolder()) { List<Object> ocs = sr.getAttributeValues(ServerConstants.OBJECTCLASS_ATTRIBUTE_TYPE_NAME); for (Object o : ocs) for (Object oc : ocs) { String oc = (String) o; ObjectClass objectClass = schema.getObjectClass(oc.toLowerCase()); if (objectClass != null && objectClass.isRequired(attrType)) ObjectClass objectClass = schema.getObjectClass(((String) oc).toLowerCase()); if (!objectClass.isPlaceHolder() && objectClass.isRequired(attrType)) { return true; } @@ -1636,7 +1635,7 @@ for (String oc : ocs) { ObjectClass objectClass = schema.getObjectClass(oc); if (objectClass != null) if (!objectClass.isPlaceHolder()) { for (AttributeType attr : objectClass.getRequiredAttributes()) { @@ -1825,7 +1824,7 @@ if (schema != null && structural != null) { ObjectClass oc = schema.getObjectClass(structural.toLowerCase()); if (oc != null) if (!oc.isPlaceHolder()) { values.addAll(getObjectClassSuperiorValues(oc)); } opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/TableViewEntryPanel.java
@@ -51,6 +51,7 @@ import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.RDN; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.guitools.controlpanel.datamodel.BinaryValue; import org.opends.guitools.controlpanel.datamodel.CustomSearchResult; import org.opends.guitools.controlpanel.datamodel.ObjectClassValue; @@ -61,7 +62,6 @@ import org.opends.guitools.controlpanel.util.Utilities; import org.opends.server.types.Entry; import org.opends.server.types.LDIFImportConfig; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.OpenDsException; import org.opends.server.types.Schema; import org.opends.server.util.LDIFReader; @@ -619,7 +619,7 @@ { String oc = (String)o; ObjectClass objectClass = schema.getObjectClass(oc.toLowerCase()); if (objectClass != null) if (!objectClass.isPlaceHolder()) { for (AttributeType attr : objectClass.getRequiredAttributes()) { @@ -747,7 +747,7 @@ for (String oc : ocs) { ObjectClass objectClass = schema.getObjectClass(oc); if (objectClass != null) if (!objectClass.isPlaceHolder()) { for (AttributeType attr : objectClass.getRequiredAttributes()) { opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/ViewEntryPanel.java
@@ -38,6 +38,7 @@ import org.forgerock.opendj.ldap.AttributeDescription; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.forgerock.opendj.ldap.schema.ObjectClassType; import org.opends.guitools.controlpanel.datamodel.BinaryValue; import org.opends.guitools.controlpanel.datamodel.CustomSearchResult; @@ -50,7 +51,6 @@ import org.opends.server.schema.SchemaConstants; import org.opends.server.types.Attributes; import org.opends.server.types.Entry; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.OpenDsException; import org.opends.server.types.Schema; import org.opends.server.util.Base64; @@ -246,9 +246,8 @@ SortedSet<String> auxiliaryClasses = new TreeSet<>(); for (Object o : ocValues) { ObjectClass objectClass = schema.getObjectClass(((String)o).toLowerCase()); if (objectClass != null) ObjectClass objectClass = schema.getObjectClass(((String) o).toLowerCase()); if (!objectClass.isPlaceHolder()) { if (objectClass.getObjectClassType() == ObjectClassType.STRUCTURAL) { @@ -361,9 +360,8 @@ Schema schema = getInfo().getServerDescriptor().getSchema(); if (schema != null) { ObjectClass oc = schema.getObjectClass(ocValue.getStructural().toLowerCase()); if (oc != null) ObjectClass oc = schema.getObjectClass(ocValue.getStructural().toLowerCase()); if (!oc.isPlaceHolder()) { Set<String> names = getObjectClassSuperiorValues(oc); for (String name : names) opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/components/SuperiorObjectClassesEditor.java
@@ -233,7 +233,7 @@ } ObjectClass oc = (ObjectClass)singleSuperior.getSelectedItem(); if (oc != null) if (oc != null && !oc.isPlaceHolder()) { return Collections.singleton(oc); } opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/SchemaLoader.java
@@ -30,6 +30,7 @@ import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.MatchingRule; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.forgerock.opendj.ldap.schema.SchemaBuilder; import org.forgerock.opendj.ldap.schema.Syntax; import org.opends.server.config.ConfigConstants; @@ -38,7 +39,6 @@ import org.opends.server.schema.SchemaConstants; import org.opends.server.types.DirectoryException; import org.opends.server.types.InitializationException; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.Schema; import com.forgerock.opendj.util.OperatingSystem; @@ -70,7 +70,7 @@ for (String name : OBJECTCLASS_TO_KEEP) { ObjectClass oc = sc.getObjectClass(name.toLowerCase()); if (oc != null) if (!oc.isPlaceHolder()) { objectclassesToKeep.add(oc); } opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java
@@ -143,13 +143,7 @@ // Initialize null entry object classes. objectClasses = new HashMap<>(); String topOCName = "top"; ObjectClass topOC = DirectoryServer.getObjectClass(topOCName); if (topOC == null) { throw new InitializationException(LocalizableMessage.raw("Unable to locate " + topOCName + " objectclass in the current server schema")); } objectClasses.put(topOC, topOCName); objectClasses.put(DirectoryServer.getTopObjectClass(), "top"); String nulOCName = "nullbackendobject"; ObjectClass nulOC = DirectoryServer.getObjectClass2(nulOCName); @@ -163,7 +157,7 @@ String extOCName = "extensibleobject"; ObjectClass extOC = DirectoryServer.getObjectClass(extOCName); if (extOC == null) { if (extOC.isPlaceHolder()) { throw new InitializationException(LocalizableMessage.raw("Unable to locate " + extOCName + " objectclass in the current server schema")); } opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
@@ -1467,8 +1467,8 @@ ObjectClass existingClass = schema.getObjectClass(objectClass.getOID()); for (String name : objectClass.getNames()) { ObjectClass oc = schema.getObjectClass(toLowerCase(name)); if (oc == null) ObjectClass oc = schema.getObjectClass(name); if (oc.isPlaceHolder()) { continue; } @@ -1543,7 +1543,7 @@ // If there is no existing class, then we're adding a new objectclass. // Otherwise, we're replacing an existing one. if (existingClass == null) if (existingClass.isPlaceHolder()) { schema.registerObjectClass(objectClass, false); addNewSchemaElement(modifiedSchemaFiles, objectClass); @@ -1592,7 +1592,7 @@ // See if the specified objectclass is actually defined in the server // schema. If not, then fail. ObjectClass removeClass = schema.getObjectClass(objectClass.getOID()); if (removeClass == null || !removeClass.equals(objectClass)) if (removeClass.isPlaceHolder() || !removeClass.equals(objectClass)) { LocalizableMessage message = ERR_SCHEMA_MODIFY_REMOVE_NO_SUCH_OBJECTCLASS.get( objectClass.getNameOrOID()); @@ -3468,7 +3468,7 @@ // Register this ObjectClass in the new schema // unless it is already defined with the same syntax. ObjectClass oldObjectClass = schema.getObjectClass(newObjectClass.getOID()); if (oldObjectClass == null || !oldObjectClass.toString().equals(newObjectClass.toString())) if (oldObjectClass.isPlaceHolder() || !oldObjectClass.toString().equals(newObjectClass.toString())) { newSchema.registerObjectClass(newObjectClass, true); opendj-server-legacy/src/main/java/org/opends/server/core/SubentryPasswordPolicy.java
@@ -32,8 +32,10 @@ import org.forgerock.i18n.slf4j.LocalizedLogger; import org.forgerock.opendj.config.server.ConfigException; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.forgerock.opendj.server.config.meta.PasswordPolicyCfgDefn.StateUpdateFailurePolicy; import org.forgerock.opendj.server.config.server.PasswordValidatorCfg; import org.opends.server.api.AccountStatusNotificationHandler; @@ -41,11 +43,9 @@ import org.opends.server.api.PasswordStorageScheme; import org.opends.server.api.PasswordValidator; import org.opends.server.types.Attribute; import org.forgerock.opendj.ldap.DN; import org.opends.server.types.DirectoryException; import org.opends.server.types.Entry; import org.opends.server.types.InitializationException; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.Operation; import org.opends.server.types.SubEntry; import org.opends.server.util.SchemaUtils; @@ -143,7 +143,7 @@ ObjectClass pwdPolicyOC = DirectoryServer.getObjectClass(PWD_OC_POLICY); Entry entry = subentry.getEntry(); Map<ObjectClass, String> objectClasses = entry.getObjectClasses(); if (pwdPolicyOC == null) if (pwdPolicyOC.isPlaceHolder()) { // This should not happen -- The server doesn't // have a pwdPolicy objectclass defined. @@ -245,9 +245,8 @@ // Now check for the pwdValidatorPolicy OC and its attribute. // Determine if this is a password validator policy object class. ObjectClass pwdValidatorPolicyOC = DirectoryServer.getObjectClass(PWD_OC_VALIDATORPOLICY); if (pwdValidatorPolicyOC != null && ObjectClass pwdValidatorPolicyOC = DirectoryServer.getObjectClass(PWD_OC_VALIDATORPOLICY); if (!pwdValidatorPolicyOC.isPlaceHolder() && objectClasses.containsKey(pwdValidatorPolicyOC)) { AttributeType pwdAttrType = opendj-server-legacy/src/main/java/org/opends/server/loggers/CommonAudit.java
@@ -62,6 +62,8 @@ import org.forgerock.json.resource.RequestHandler; import org.forgerock.opendj.config.ConfigurationFramework; import org.forgerock.opendj.config.server.ConfigException; import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.forgerock.opendj.server.config.server.CsvFileAccessLogPublisherCfg; import org.forgerock.opendj.server.config.server.CsvFileHTTPAccessLogPublisherCfg; import org.forgerock.opendj.server.config.server.ExternalAccessLogPublisherCfg; @@ -75,11 +77,9 @@ import org.forgerock.opendj.server.config.server.SizeLimitLogRetentionPolicyCfg; import org.forgerock.opendj.server.config.server.SizeLimitLogRotationPolicyCfg; import org.forgerock.opendj.server.config.server.TimeLimitLogRotationPolicyCfg; import org.opends.server.types.Entry; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.core.DirectoryServer; import org.forgerock.opendj.ldap.DN; import org.opends.server.core.ServerContext; import org.opends.server.types.Entry; import org.opends.server.util.StaticUtils; /** @@ -738,7 +738,7 @@ private boolean hasObjectClass(ServerContext serverContext, Entry entry, String objectClassName) { ObjectClass objectClass = serverContext.getSchema().getObjectClass(objectClassName); return objectClass != null && entry.hasObjectClass(objectClass); return !objectClass.isPlaceHolder() && entry.hasObjectClass(objectClass); } DN getDn() opendj-server-legacy/src/main/java/org/opends/server/plugins/LDAPADListPlugin.java
@@ -91,7 +91,7 @@ { final String lowerName = toLowerCase(attrName.substring(1)); final ObjectClass oc = getObjectClass(lowerName); if (oc == null) if (oc.isPlaceHolder()) { logger.trace("Cannot replace unknown objectclass %s", lowerName); } opendj-server-legacy/src/main/java/org/opends/server/plugins/SambaPasswordPlugin.java
@@ -21,35 +21,52 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.util.*; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Set; import java.util.SortedSet; import javax.crypto.*; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import org.forgerock.i18n.LocalizableMessage; import org.forgerock.i18n.slf4j.LocalizedLogger; import org.forgerock.opendj.config.server.ConfigChangeResult; import org.forgerock.opendj.config.server.ConfigException; import org.forgerock.opendj.config.server.ConfigurationChangeListener; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.ModificationType; import org.forgerock.opendj.config.server.ConfigurationChangeListener; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.forgerock.opendj.server.config.meta.PluginCfgDefn; import org.forgerock.opendj.server.config.meta.SambaPasswordPluginCfgDefn.PwdSyncPolicy; import org.forgerock.opendj.server.config.server.SambaPasswordPluginCfg; import org.opends.server.api.plugin.DirectoryServerPlugin; import org.opends.server.api.plugin.PluginResult; import org.opends.server.api.plugin.PluginType; import org.forgerock.opendj.config.server.ConfigChangeResult; import org.forgerock.opendj.config.server.ConfigException; import org.opends.server.controls.LDAPAssertionRequestControl; import org.opends.server.core.DirectoryServer; import org.opends.server.core.ModifyOperation; import org.opends.server.extensions.PasswordModifyExtendedOperation; import org.opends.server.protocols.internal.InternalClientConnection; import org.opends.server.protocols.ldap.LDAPFilter; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.*; import org.forgerock.opendj.ldap.ResultCode; import org.opends.server.types.Attribute; import org.opends.server.types.Attributes; import org.opends.server.types.Control; import org.opends.server.types.DirectoryException; import org.opends.server.types.Entry; import org.opends.server.types.InitializationException; import org.opends.server.types.Modification; import org.opends.server.types.RawFilter; import org.opends.server.types.Schema; import org.opends.server.types.operation.PostOperationExtendedOperation; import org.opends.server.types.operation.PreOperationModifyOperation; @@ -954,7 +971,7 @@ final Schema schema = DirectoryServer.getSchema(); final ObjectClass sambaOc = schema .getObjectClass(toLowerCase(SAMBA_SAM_ACCOUNT_OC_NAME)); return sambaOc != null && entry.hasObjectClass(sambaOc); return !sambaOc.isPlaceHolder() && entry.hasObjectClass(sambaOc); } opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -73,6 +73,7 @@ import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.SearchScope; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.forgerock.opendj.server.config.meta.ReplicationDomainCfgDefn.IsolationPolicy; import org.forgerock.opendj.server.config.server.ExternalChangelogDomainCfg; import org.forgerock.opendj.server.config.server.ReplicationDomainCfg; @@ -138,7 +139,6 @@ import org.opends.server.types.LDIFExportConfig; import org.opends.server.types.LDIFImportConfig; import org.opends.server.types.Modification; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.Operation; import org.opends.server.types.OperationType; import org.opends.server.types.RawModification; @@ -971,9 +971,8 @@ for (String className : newFractionalSpecificClassesAttributes.keySet()) { // Does the class exist ? ObjectClass fractionalClass = schema.getObjectClass( className.toLowerCase()); if (fractionalClass == null) ObjectClass fractionalClass = schema.getObjectClass(className.toLowerCase()); if (fractionalClass.isPlaceHolder()) { throw new ConfigException( NOTE_ERR_FRACTIONAL_CONFIG_UNKNOWN_OBJECT_CLASS.get(className)); @@ -4439,9 +4438,8 @@ if (name.startsWith("@")) { String ocName = name.substring(1); ObjectClass objectClass = DirectoryServer.getObjectClass(toLowerCase(ocName)); if (objectClass != null) ObjectClass objectClass = DirectoryServer.getObjectClass(toLowerCase(ocName)); if (!objectClass.isPlaceHolder()) { for (AttributeType at : objectClass.getRequiredAttributes()) { @@ -4842,7 +4840,7 @@ { // Get class from specificClassesAttributes1 ObjectClass objectClass1 = schema.getObjectClass(className1); if (objectClass1 == null) if (objectClass1.isPlaceHolder()) { throw new ConfigException( NOTE_ERR_FRACTIONAL_CONFIG_UNKNOWN_OBJECT_CLASS.get(className1)); @@ -4853,7 +4851,7 @@ for (String className2 : specificClassesAttrs2.keySet()) { ObjectClass objectClass2 = schema.getObjectClass(className2); if (objectClass2 == null) if (objectClass2.isPlaceHolder()) { throw new ConfigException( NOTE_ERR_FRACTIONAL_CONFIG_UNKNOWN_OBJECT_CLASS.get(className2)); opendj-server-legacy/src/main/java/org/opends/server/schema/DITContentRuleSyntax.java
@@ -30,6 +30,7 @@ import org.forgerock.opendj.ldap.ByteSequence; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.forgerock.opendj.ldap.schema.ObjectClassType; import org.forgerock.opendj.ldap.schema.Syntax; import org.forgerock.opendj.server.config.server.AttributeSyntaxCfg; @@ -37,7 +38,6 @@ import org.opends.server.core.DirectoryServer; import org.opends.server.types.DITContentRule; import org.opends.server.types.DirectoryException; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.Schema; /** @@ -235,13 +235,9 @@ // Get the objectclass with the specified OID. If it does not exist or is // not structural, then fail. ObjectClass structuralClass = schema.getObjectClass(oid); if (structuralClass == null) if (structuralClass.isPlaceHolder()) { if (allowUnknownElements) { structuralClass = DirectoryServer.getDefaultObjectClass(oid); } else if (!allowUnknownElements) { LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS.get(valueStr, oid); @@ -394,15 +390,10 @@ pos = readWOID(lowerStr, woidBuffer, pos); ObjectClass oc = schema.getObjectClass(woidBuffer.toString()); if (oc == null) if (oc.isPlaceHolder()) { // This isn't good because it is an unknown auxiliary class. if (allowUnknownElements) { oc = DirectoryServer.getDefaultAuxiliaryObjectClass( woidBuffer.toString()); } else if (!allowUnknownElements) { throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS.get( @@ -444,15 +435,10 @@ pos = readWOID(lowerStr, woidBuffer, pos-1); ObjectClass oc = schema.getObjectClass(woidBuffer.toString()); if (oc == null) if (oc.isPlaceHolder()) { // This isn't good because it is an unknown auxiliary class. if (allowUnknownElements) { oc = DirectoryServer.getDefaultAuxiliaryObjectClass( woidBuffer.toString()); } else if (!allowUnknownElements) { throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS.get(valueStr, woidBuffer)); opendj-server-legacy/src/main/java/org/opends/server/schema/NameFormSyntax.java
@@ -30,6 +30,7 @@ import org.forgerock.opendj.ldap.ByteSequence; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.forgerock.opendj.ldap.schema.ObjectClassType; import org.forgerock.opendj.ldap.schema.Syntax; import org.forgerock.opendj.server.config.server.AttributeSyntaxCfg; @@ -37,7 +38,6 @@ import org.opends.server.core.DirectoryServer; import org.opends.server.types.DirectoryException; import org.opends.server.types.NameForm; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.Schema; /** @@ -370,16 +370,10 @@ StringBuilder woidBuffer = new StringBuilder(); pos = readWOID(lowerStr, woidBuffer, pos); structuralClass = schema.getObjectClass(woidBuffer.toString()); if (structuralClass == null) if (!structuralClass.isPlaceHolder()) { // This is bad because we don't know what the structural objectclass // is. if (allowUnknownElements) { structuralClass = DirectoryServer.getDefaultObjectClass( woidBuffer.toString()); } else // This is bad because we don't know what the structural objectclass is. if (!allowUnknownElements) { LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS.get(oid, woidBuffer); opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java
@@ -1699,7 +1699,7 @@ // all attributes required by the object classes are present. for (ObjectClass o : objectClasses.keySet()) { if (DirectoryServer.getObjectClass(o.getOID()) == null) if (DirectoryServer.getObjectClass(o.getOID()).isPlaceHolder()) { LocalizableMessage message = ERR_ENTRY_SCHEMA_UNKNOWN_OC.get(dn, o.getNameOrOID()); invalidReason.append(message); @@ -2463,16 +2463,11 @@ String attrTypeName) { ObjectClass oc = DirectoryServer.getObjectClass(objectClassName); if (oc == null) if (oc.isPlaceHolder()) { // This should not happen // The server doesn't have this objectclass defined. if (logger.isTraceEnabled()) { logger.trace( "No %s objectclass is defined in the server schema.", objectClassName); } logger.trace("No %s objectclass is defined in the server schema.", objectClassName); return containsObjectClassByName(objectClassName); } if (!objectClasses.containsKey(oc)) @@ -2486,10 +2481,7 @@ { // This should not happen // The server doesn't have this attribute type defined. if (logger.isTraceEnabled()) { logger.trace("No %s attribute type is defined in the server schema.", attrTypeName); } return false; } return userAttributes.containsKey(attrType) @@ -2647,16 +2639,11 @@ private boolean hasObjectClass(String objectClassLowerCase) { ObjectClass oc = DirectoryServer.getObjectClass(objectClassLowerCase); if (oc == null) if (oc.isPlaceHolder()) { // This should not happen // The server doesn't have this object class defined. if (logger.isTraceEnabled()) { logger.trace( "No %s objectclass is defined in the server schema.", objectClassLowerCase); } logger.trace("No %s objectclass is defined in the server schema.", objectClassLowerCase); return containsObjectClassByName(objectClassLowerCase); } opendj-server-legacy/src/main/java/org/opends/server/types/SubtreeSpecification.java
@@ -272,7 +272,7 @@ public boolean matches(final Entry entry) { final ObjectClass oc = DirectoryServer.getObjectClass(normalizedObjectClass); return oc != null && entry.hasObjectClass(oc); return !oc.isPlaceHolder() && entry.hasObjectClass(oc); } @Override opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
@@ -1257,7 +1257,7 @@ } ObjectClass oc = DirectoryServer.getObjectClass(lowerName); if (oc == null) if (oc.isPlaceHolder()) { throw newDirectoryException(currentEntry, ResultCode.OBJECTCLASS_VIOLATION, opendj-server-legacy/src/test/java/org/opends/server/backends/SchemaBackendTestCase.java
@@ -41,6 +41,7 @@ import org.forgerock.opendj.ldap.schema.AttributeType; import org.forgerock.opendj.ldap.schema.MatchingRule; import org.forgerock.opendj.ldap.schema.MatchingRuleUse; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.forgerock.opendj.ldap.schema.Schema; import org.forgerock.opendj.ldap.schema.SchemaBuilder; import org.forgerock.util.Utils; @@ -63,7 +64,6 @@ import org.opends.server.types.LDIFExportConfig; import org.opends.server.types.LDIFImportConfig; import org.opends.server.types.LDIFImportResult; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.types.SearchFilter; import org.opends.server.util.CollectionUtils; import org.opends.server.util.ServerConstants; @@ -2381,7 +2381,7 @@ runModify(argsNotPermissive(), ldif, System.err, SUCCESS); ObjectClass oc = DirectoryServer.getSchema().getObjectClass(ocName); assertNotNull(oc); assertFalse(oc.isPlaceHolder()); DITContentRule dcr = DirectoryServer.getSchema().getDITContentRule(oc); assertNotNull(dcr); @@ -2424,7 +2424,7 @@ runModify(argsPermissive(), ldif, System.err, SUCCESS); ObjectClass oc = DirectoryServer.getSchema().getObjectClass(ocName); assertNotNull(oc); assertFalse(oc.isPlaceHolder()); DITContentRule dcr = DirectoryServer.getSchema().getDITContentRule(oc); assertNotNull(dcr); @@ -2466,7 +2466,7 @@ runModify(argsNotPermissive(), ldif, System.err, SUCCESS); ObjectClass oc = DirectoryServer.getSchema().getObjectClass(ocName); assertNotNull(oc); assertFalse(oc.isPlaceHolder()); DITContentRule dcr = DirectoryServer.getSchema().getDITContentRule(oc); assertNotNull(dcr); @@ -2516,7 +2516,7 @@ runModify(argsNotPermissive(), ldif, System.err, SUCCESS); ObjectClass oc = DirectoryServer.getSchema().getObjectClass(ocName); assertNotNull(oc); assertFalse(oc.isPlaceHolder()); DITContentRule dcr = DirectoryServer.getSchema().getDITContentRule(oc); assertNotNull(dcr); @@ -3116,7 +3116,7 @@ runModify(argsNotPermissive(), ldif, System.err, SUCCESS); ObjectClass oc = DirectoryServer.getSchema().getObjectClass(ocName); assertNotNull(oc); assertFalse(oc.isPlaceHolder()); DITContentRule dcr = DirectoryServer.getSchema().getDITContentRule(oc); assertNull(dcr); @@ -4120,7 +4120,7 @@ "X-ORIGIN 'SchemaBackendTestCase' )"); String objectClassName = "testditcontentrulesmatchingruleoc"; assertNull(DirectoryServer.getSchema().getObjectClass(objectClassName)); assertTrue(DirectoryServer.getSchema().getObjectClass(objectClassName).isPlaceHolder()); runModify(argsNotPermissive(), ldif, System.err, ATTRIBUTE_OR_VALUE_EXISTS); } @@ -4186,7 +4186,7 @@ "X-ORIGIN 'SchemaBackendTestCase' )"); String objectClassName = "testditcontentrulesmatchingruleoc1"; assertNull(DirectoryServer.getSchema().getObjectClass(objectClassName)); assertTrue(DirectoryServer.getSchema().getObjectClass(objectClassName).isPlaceHolder()); runModify(argsNotPermissive(), ldif, System.err, ATTRIBUTE_OR_VALUE_EXISTS); } @@ -4363,10 +4363,8 @@ " MAY ( street $ c) X-ORIGIN 'user defined' )"); assertEquals(resultCode, 0); assertNotNull(DirectoryServer.getObjectClass( "testaddanddeletedefinitionwithextraspaces")); assertNotNull(DirectoryServer.getObjectClass( "testaddanddeletedefinitionwithextraspaces-oid")); assertFalse(getObjectClass("testaddanddeletedefinitionwithextraspaces").isPlaceHolder()); assertFalse(getObjectClass("testaddanddeletedefinitionwithextraspaces-oid").isPlaceHolder()); resultCode = TestCaseUtils.applyModifications(false, "dn: cn=schema", @@ -4377,10 +4375,8 @@ " MAY ( street $ c) X-ORIGIN 'user defined' )"); assertEquals(resultCode, 0); assertNull(DirectoryServer.getObjectClass( "testaddanddeletedefinitionwithextraspaces")); assertNull(DirectoryServer.getObjectClass( "testaddanddeletedefinitionwithextraspaces-oid")); assertTrue(getObjectClass("testaddanddeletedefinitionwithextraspaces").isPlaceHolder()); assertTrue(getObjectClass("testaddanddeletedefinitionwithextraspaces-oid").isPlaceHolder()); } /** opendj-server-legacy/src/test/java/org/opends/server/core/SubtreeSpecificationTestCase.java
@@ -71,13 +71,13 @@ objectClasses = new HashSet<>(); ObjectClass oc = DirectoryServer.getObjectClass("top"); if (oc == null) { if (oc.isPlaceHolder()) { throw new RuntimeException("Unable to resolve object class top"); } objectClasses.add(oc); oc = DirectoryServer.getObjectClass("person"); if (oc == null) { if (oc.isPlaceHolder()) { throw new RuntimeException("Unable to resolve object class person"); } objectClasses.add(oc); opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/FractionalReplicationTest.java
@@ -656,7 +656,6 @@ if (!objectClassStr.equals("*")) { ObjectClass objectClass = DirectoryServer.getObjectClass(objectClassStr.toLowerCase()); assertTrue(newEntry.hasObjectClass(objectClass)); } @@ -710,7 +709,6 @@ if (!objectClassStr.equals("*")) { ObjectClass objectClass = DirectoryServer.getObjectClass(objectClassStr.toLowerCase()); assertTrue(entry.hasObjectClass(objectClass)); } opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/ModifyConflictTest.java
@@ -27,7 +27,7 @@ import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.ModificationType; import org.forgerock.opendj.ldap.schema.AttributeType; import org.opends.server.core.DirectoryServer; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.core.ModifyOperationBasis; import org.opends.server.replication.ReplicationTestCase; import org.opends.server.replication.common.CSN; @@ -40,7 +40,6 @@ import org.opends.server.types.DirectoryException; import org.opends.server.types.Entry; import org.opends.server.types.Modification; import org.forgerock.opendj.ldap.schema.ObjectClass; import org.opends.server.workflowelement.localbackend.LocalBackendModifyOperation; import org.testng.annotations.Test; @@ -1066,8 +1065,7 @@ */ DN dn = DN.valueOf(TEST_ROOT_DN_STRING); Map<ObjectClass, String> objectClasses = new HashMap<>(); ObjectClass org = DirectoryServer.getObjectClass(ORGANIZATION); objectClasses.put(org, ORGANIZATION); objectClasses.put(getObjectClass(ORGANIZATION), ORGANIZATION); // start with a new entry with an empty attribute Entry entry = new Entry(dn, objectClasses, null, null); opendj-server-legacy/src/test/java/org/opends/server/types/TestEntry.java
@@ -75,13 +75,9 @@ DN entryDN = DN.valueOf("dc=example, dc=com"); // Get default object classes. ObjectClass top = DirectoryServer.getObjectClass("top"); if (top == null) { throw new RuntimeException("Unable to resolve object class top"); } ObjectClass top = DirectoryServer.getTopObjectClass(); ObjectClass extensible = DirectoryServer.getObjectClass("extensibleobject"); if (extensible == null) { if (extensible.isPlaceHolder()) { throw new RuntimeException( "Unable to resolve object class extensibleObject"); }