opendj-server3x-adapter/pom.xml
New file @@ -0,0 +1,166 @@ <?xml version="1.0"?> <!-- ! CDDL HEADER START ! ! The contents of this file are subject to the terms of the ! Common Development and Distribution License, Version 1.0 only ! (the "License"). You may not use this file except in compliance ! with the License. ! ! You can obtain a copy of the license at legal-notices/CDDLv1_0.txt ! or http://forgerock.org/license/CDDLv1.0.html. ! See the License for the specific language governing permissions ! and limitations under the License. ! ! When distributing Covered Code, include this CDDL HEADER in each ! file and include the License file at legal-notices/CDDLv1_0.txt. ! If applicable, add the following below this CDDL HEADER, with the ! fields enclosed by brackets "[]" replaced with your own identifying ! information: ! Portions Copyright [yyyy] [name of copyright owner] ! ! CDDL HEADER END ! ! Copyright 2013-2014 ForgeRock AS ! --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <artifactId>opendj-project</artifactId> <groupId>org.forgerock.opendj</groupId> <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>opendj-server3x-adapter</artifactId> <name>OpenDJ Server 3.x Adapter</name> <description> This module includes an LDAP adapter which maps the SDK Connection to an Internal Client Connection. This module will only be used to link the opendj3-server-dev branch to opendj-rest2ldap. This module will be deleted once the opendj3-server-dev branch uses only the OpenDJ SDK 3 types. </description> <packaging>jar</packaging> <dependencies> <dependency> <groupId>org.forgerock.opendj</groupId> <artifactId>opendj3-server-dev</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <!-- opendj3-server-dev dependencies START --> <dependency> <groupId>org.forgerock.opendj</groupId> <artifactId>opendj-cli</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <!-- opendj3-server-dev dependencies END --> <dependency> <groupId>org.forgerock.opendj</groupId> <artifactId>opendj-core</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.forgerock</groupId> <artifactId>forgerock-build-tools</artifactId> <version>${forgerockBuildToolsVersion}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.forgerock.opendj</groupId> <artifactId>opendj-grizzly</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.sleepycat</groupId> <artifactId>je</artifactId> <version>4.1.21</version> <scope>test</scope> </dependency> </dependencies> <repositories> <repository> <id>oracleReleases</id> <name>Oracle Released Java Packages</name> <url>http://download.oracle.com/maven</url> <layout>default</layout> </repository> </repositories> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <reportSets> <reportSet> <reports> <report>dependencies</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <links> <link>http://commons.forgerock.org/i18n-framework/i18n-core/apidocs</link> </links> </configuration> </plugin> </plugins> </reporting> <build> <testResources> <!-- Binary data are corrupted by filtering --> <testResource> <directory>src/test/resources</directory> <filtering>true</filtering> <excludes> <exclude>config/admin-keystore</exclude> <exclude>config/admin-keystore.pin</exclude> <exclude>config/admin-truststore</exclude> <exclude>config/ads-truststore</exclude> <exclude>config/ads-truststore.pin</exclude> </excludes> </testResource> <testResource> <directory>src/test/resources</directory> <filtering>false</filtering> <includes> <include>config/admin-keystore</include> <include>config/admin-keystore.pin</include> <include>config/admin-truststore</include> <include>config/ads-truststore</include> <include>config/ads-truststore.pin</include> </includes> </testResource> </testResources> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.4</version> <executions> <execution> <id>reserve-network-port</id> <goals> <goal>reserve-network-port</goal> </goals> <phase>generate-test-resources</phase> <configuration> <portNames> <portName>listen-port</portName> <portName>ldaps-listen-port</portName> <portName>admin-listen-port</portName> </portNames> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Adapters.java
New file @@ -0,0 +1,391 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt * or http://forgerock.org/license/CDDLv1.0.html. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at legal-notices/CDDLv1_0.txt. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2013-2014 ForgeRock AS. */ package org.forgerock.opendj.adapter.server3x; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.LinkedHashSet; import org.forgerock.opendj.ldap.AbstractSynchronousConnection; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.Connection; import org.forgerock.opendj.ldap.ConnectionEventListener; import org.forgerock.opendj.ldap.ConnectionFactory; import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.DecodeException; import org.forgerock.opendj.ldap.DecodeOptions; import org.forgerock.opendj.ldap.ErrorResultException; import org.forgerock.opendj.ldap.FutureResult; import org.forgerock.opendj.ldap.IntermediateResponseHandler; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.ResultHandler; import org.forgerock.opendj.ldap.SearchResultHandler; import org.forgerock.opendj.ldap.controls.Control; import org.forgerock.opendj.ldap.requests.AddRequest; import org.forgerock.opendj.ldap.requests.BindClient; import org.forgerock.opendj.ldap.requests.BindRequest; import org.forgerock.opendj.ldap.requests.CompareRequest; import org.forgerock.opendj.ldap.requests.DeleteRequest; import org.forgerock.opendj.ldap.requests.ExtendedRequest; import org.forgerock.opendj.ldap.requests.GenericBindRequest; import org.forgerock.opendj.ldap.requests.ModifyDNRequest; import org.forgerock.opendj.ldap.requests.ModifyRequest; import org.forgerock.opendj.ldap.requests.SASLBindRequest; import org.forgerock.opendj.ldap.requests.SearchRequest; import org.forgerock.opendj.ldap.requests.SimpleBindRequest; import org.forgerock.opendj.ldap.requests.UnbindRequest; import org.forgerock.opendj.ldap.responses.BindResult; import org.forgerock.opendj.ldap.responses.CompareResult; import org.forgerock.opendj.ldap.responses.ExtendedResult; import org.forgerock.opendj.ldap.responses.GenericExtendedResult; import org.forgerock.opendj.ldap.responses.Responses; import org.forgerock.opendj.ldap.responses.Result; import org.opends.server.core.AddOperation; import org.opends.server.core.BindOperation; import org.opends.server.core.CompareOperation; import org.opends.server.core.DeleteOperation; import org.opends.server.core.ExtendedOperation; import org.opends.server.core.ModifyDNOperation; import org.opends.server.core.ModifyOperation; import org.opends.server.protocols.internal.InternalClientConnection; import org.opends.server.protocols.internal.InternalSearchListener; import org.opends.server.protocols.internal.InternalSearchOperation; import org.opends.server.types.AuthenticationInfo; import org.opends.server.types.DirectoryException; import org.opends.server.types.SearchResultEntry; import org.opends.server.types.SearchResultReference; import com.forgerock.opendj.util.CompletedFutureResult; import static org.forgerock.opendj.adapter.server3x.Converters.*; import static org.forgerock.opendj.ldap.ByteString.*; /** * This class provides a connection factory and an adapter for the OpenDJ 2.x * server. */ public final class Adapters { /** * Constructor. */ private Adapters() { // No implementation required. } /** * Returns a new root connection factory. * * @return A new root connection factory. */ public static ConnectionFactory newRootConnectionFactory() { InternalClientConnection icc = InternalClientConnection.getRootConnection(); return newConnectionFactory(icc); } /** * Returns a new anonymous connection factory. * * @return A new anonymous connection factory. */ public static ConnectionFactory newAnonymousConnectionFactory() { InternalClientConnection icc = new InternalClientConnection(new AuthenticationInfo()); return newConnectionFactory(icc); } /** * Returns a new connection factory for a specified user. * * @param userDN * The specified user's DN. * @return a new connection factory. */ public static ConnectionFactory newConnectionFactoryForUser(final DN userDN) { InternalClientConnection icc = null; try { icc = new InternalClientConnection(to(userDN)); } catch (DirectoryException e) { throw new IllegalStateException(e.getMessage()); } return newConnectionFactory(icc); } /** * Returns a new connection factory. * * @param icc * The internal client connection from server side. * @return A new SDK connection factory. */ public static ConnectionFactory newConnectionFactory(final InternalClientConnection icc) { final Connection connection = newConnection(icc); ConnectionFactory factory = new ConnectionFactory() { @Override public void close() { // Nothing to do. } @Override public FutureResult<Connection> getConnectionAsync( ResultHandler<? super Connection> handler) { if (handler != null) { handler.handleResult(connection); } // TODO change the path... return new CompletedFutureResult<Connection>(connection); } @Override public Connection getConnection() throws ErrorResultException { return connection; } }; return factory; } /** * Returns a new root connection. * * @return A new root connection. */ public static Connection newRootConnection() { return newConnection(InternalClientConnection.getRootConnection()); } /** * Returns a new connection for an anonymous user. * * @return A new connection. */ public static Connection newAnonymousConnection() { return newConnection(new InternalClientConnection(new AuthenticationInfo())); } /** * Returns a new connection for a specified user. * * @param dn * The DN of the user. * @return A new connection for a specified user. * @throws ErrorResultException * If no such object. */ public static Connection newConnectionForUser(final DN dn) throws ErrorResultException { try { return newConnection(new InternalClientConnection(to(dn))); } catch (DirectoryException e) { throw ErrorResultException.newErrorResult(Responses .newResult(ResultCode.NO_SUCH_OBJECT)); } } private static Connection newConnection(final InternalClientConnection icc) { return new AbstractSynchronousConnection() { @Override public Result search(final SearchRequest request, final SearchResultHandler handler) throws ErrorResultException { InternalSearchListener internalSearchListener = new InternalSearchListener() { @Override public void handleInternalSearchReference( InternalSearchOperation searchOperation, SearchResultReference searchReference) throws DirectoryException { handler.handleReference(from(searchReference)); } @Override public void handleInternalSearchEntry(InternalSearchOperation searchOperation, SearchResultEntry searchEntry) throws DirectoryException { handler.handleEntry(from(searchEntry)); } }; final InternalSearchOperation internalSO = icc.processSearch(valueOf(request.getName()), to(request.getScope()), to(request.getDereferenceAliasesPolicy()), request.getSizeLimit(), request.getTimeLimit(), request.isTypesOnly(), to(request .getFilter()), new LinkedHashSet<String>(request .getAttributes()), to(request.getControls()), internalSearchListener); return getResponseResult(internalSO); } @Override public void removeConnectionEventListener(ConnectionEventListener listener) { // Internal client connection don't have any connection events. } @Override public Result modifyDN(final ModifyDNRequest request) throws ErrorResultException { final ModifyDNOperation modifyDNOperation = icc.processModifyDN(valueOf(request.getName()), valueOf(request.getNewRDN()), request.isDeleteOldRDN(), (request.getNewSuperior() != null ? valueOf(request.getNewSuperior()) : null), to(request.getControls())); return getResponseResult(modifyDNOperation); } @Override public Result modify(final ModifyRequest request) throws ErrorResultException { final ModifyOperation modifyOperation = icc.processModify(valueOf(request.getName()), toRawModifications(request .getModifications()), to(request.getControls())); return getResponseResult(modifyOperation); } @Override public boolean isValid() { // Always true. return true; } @Override public boolean isClosed() { return false; } @Override public <R extends ExtendedResult> R extendedRequest(final ExtendedRequest<R> request, final IntermediateResponseHandler handler) throws ErrorResultException { final ExtendedOperation extendedOperation = icc.processExtendedOperation(request.getOID(), request.getValue(), to(request.getControls())); final Result result = getResponseResult(extendedOperation); final GenericExtendedResult genericExtendedResult = Responses.newGenericExtendedResult(result.getResultCode()) .setDiagnosticMessage(result.getDiagnosticMessage()).setMatchedDN( result.getMatchedDN()).setValue( extendedOperation.getResponseValue().toByteString()); try { R extendedResult = request.getResultDecoder().decodeExtendedResult(genericExtendedResult, new DecodeOptions()); for (final Control control : result.getControls()) { extendedResult.addControl(control); } return extendedResult; } catch (DecodeException e) { return request.getResultDecoder().newExtendedErrorResult( ResultCode.valueOf(extendedOperation.getResultCode().getIntValue()), (extendedOperation.getMatchedDN() != null ? extendedOperation .getMatchedDN().toString() : null), extendedOperation.getErrorMessage().toString()); } } @Override public Result delete(final DeleteRequest request) throws ErrorResultException { final DeleteOperation deleteOperation = icc.processDelete(valueOf(request.getName()), to(request.getControls())); return getResponseResult(deleteOperation); } @Override public CompareResult compare(final CompareRequest request) throws ErrorResultException { final CompareOperation compareOperation = icc.processCompare(valueOf(request.getName()), request.getAttributeDescription().toString(), valueOf(request.getAssertionValueAsString()), to(request.getControls())); CompareResult result = Responses.newCompareResult(getResultCode(compareOperation)); result = getResponseResult(compareOperation, result); return result; } @Override public void close(final UnbindRequest request, final String reason) { // no implementation in open-ds. } @Override public BindResult bind(final BindRequest request) throws ErrorResultException { BindOperation bindOperation = null; if (request instanceof SimpleBindRequest) { bindOperation = icc.processSimpleBind(valueOf(request.getName()), ByteString.wrap(((SimpleBindRequest) request).getPassword()), to(request.getControls())); } else if (request instanceof SASLBindRequest) { String serverName = null; try { serverName = InetAddress.getByName(null).getCanonicalHostName(); } catch (UnknownHostException e) { // nothing to do. } BindClient bindClient = request.createBindClient(serverName); do { final GenericBindRequest genericBindRequest = bindClient.nextBindRequest(); bindOperation = icc.processSASLBind( valueOf(request.getName()), ((SASLBindRequest) request).getSASLMechanism(), getCredentials(genericBindRequest.getAuthenticationValue()), to(request.getControls())); } while (bindOperation.getResultCode() == org.opends.server.types.ResultCode.SASL_BIND_IN_PROGRESS); bindClient.dispose(); } else { // not supported throw ErrorResultException.newErrorResult(Responses .newResult(ResultCode.AUTH_METHOD_NOT_SUPPORTED)); } BindResult result = Responses.newBindResult(getResultCode(bindOperation)); result.setServerSASLCredentials(bindOperation.getSASLCredentials()); if (result.isSuccess()) { return result; } else { throw ErrorResultException.newErrorResult(result); } } @Override public void addConnectionEventListener(ConnectionEventListener listener) { // Internal client connection don't have any connection events. } @Override public Result add(final AddRequest request) throws ErrorResultException { final AddOperation addOperation = icc.processAdd(valueOf(request.getName()), to(request .getAllAttributes()), to(request.getControls())); return getResponseResult(addOperation); } @Override public String toString() { return icc.toString(); } }; } } opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java
New file @@ -0,0 +1,658 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt * or http://forgerock.org/license/CDDLv1.0.html. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at legal-notices/CDDLv1_0.txt. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2013-2014 ForgeRock AS. */ package org.forgerock.opendj.adapter.server3x; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import org.forgerock.opendj.ldap.Attribute; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.ByteStringBuilder; import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.DecodeException; import org.forgerock.opendj.ldap.DereferenceAliasesPolicy; import org.forgerock.opendj.ldap.ErrorResultException; import org.forgerock.opendj.ldap.LinkedAttribute; import org.forgerock.opendj.ldap.RDN; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.controls.Control; import org.forgerock.opendj.ldap.controls.GenericControl; import org.forgerock.opendj.ldap.responses.Responses; import org.forgerock.opendj.ldap.responses.Result; import org.forgerock.opendj.ldap.responses.SearchResultEntry; import org.opends.server.core.BindOperation; import org.opends.server.core.CompareOperation; import org.opends.server.core.ExtendedOperation; import org.opends.server.protocols.asn1.ASN1; import org.opends.server.protocols.asn1.ASN1Exception; import org.opends.server.protocols.asn1.ASN1Writer; import org.opends.server.protocols.ldap.LDAPAttribute; import org.opends.server.protocols.ldap.LDAPControl; import org.opends.server.protocols.ldap.LDAPFilter; import org.opends.server.protocols.ldap.LDAPModification; import org.opends.server.types.AttributeBuilder; import org.opends.server.types.AttributeValue; import org.opends.server.types.DereferencePolicy; import org.opends.server.types.LDAPException; import org.opends.server.types.Operation; /** * Common utility methods. */ public final class Converters { // Prevent instantiation. private Converters() { throw new AssertionError(); } /** * Converts from OpenDJ LDAP SDK {@link org.forgerock.opendj.ldap.responses.SearchResultEntry} to OpenDJ * server {@link org.opends.server.types.SearchResultEntry}. * * @param value * value to convert * @return the converted value */ public static org.opends.server.types.SearchResultEntry to( final org.forgerock.opendj.ldap.responses.SearchResultEntry value) { if (value != null) { org.opends.server.types.Entry entry = new org.opends.server.types.Entry(to(value.getName()), null, null, null); org.opends.server.types.SearchResultEntry searchResultEntry = new org.opends.server.types.SearchResultEntry(entry, to(value.getControls())); List<AttributeValue> duplicateValues = new ArrayList<AttributeValue>(); for (org.opends.server.types.Attribute attribute : toAttributes(value.getAllAttributes())) { searchResultEntry.addAttribute(attribute, duplicateValues); } return searchResultEntry; } return null; } /** * Converts from OpenDJ LDAP SDK {@link DereferenceAliasesPolicy} to OpenDJ * server {@link DereferencePolicy}. * * @param dereferenceAliasesPolicy * value to convert * @return the converted value */ public static org.opends.server.types.DereferencePolicy to( final DereferenceAliasesPolicy dereferenceAliasesPolicy) { return DereferencePolicy.values()[dereferenceAliasesPolicy.intValue()]; } /** * Converts from OpenDJ LDAP SDK {@link DN} to OpenDJ server * {@link org.opends.server.types.DN}. * * @param dn * value to convert * @return the converted value */ public static org.opends.server.types.DN to(final DN dn) { try { return org.opends.server.types.DN.valueOf(dn.toString()); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } /** * Converts from OpenDJ LDAP SDK {@link RDN} to OpenDJ server * {@link org.opends.server.types.RDN}. * * @param rdn * value to convert * @return the converted value */ public static org.opends.server.types.RDN to(final RDN rdn) { try { return org.opends.server.types.RDN.decode(rdn.toString()); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } /** * Converts from OpenDJ LDAP SDK {@link org.forgerock.opendj.ldap.SearchScope} * to OpenDJ server {@link org.opends.server.types.SearchScope}. * * @param searchScope * value to convert * @return the converted value */ public static org.opends.server.types.SearchScope to( final org.forgerock.opendj.ldap.SearchScope searchScope) { if (searchScope == null) { return null; } return org.opends.server.types.SearchScope.values()[searchScope.intValue()]; } /** * Converts from OpenDJ LDAP SDK {@link org.forgerock.opendj.ldap.Filter} to * OpenDJ server {@link org.opends.server.types.RawFilter}. * * @param filter * value to convert * @return the converted value */ public static org.opends.server.types.RawFilter to(final org.forgerock.opendj.ldap.Filter filter) { org.opends.server.protocols.ldap.LDAPFilter ldapFilter = null; try { ldapFilter = LDAPFilter.decode(filter.toString()); } catch (LDAPException e) { throw new IllegalStateException(e); } return ldapFilter; } /** * Converts from OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.responses.SearchResultReference} to OpenDJ * server {@link org.opends.server.types.SearchResultReference}. * * @param searchResultReference * value to convert * @return the converted value */ public static org.opends.server.types.SearchResultReference to( final org.forgerock.opendj.ldap.responses.SearchResultReference searchResultReference) { return new org.opends.server.types.SearchResultReference( searchResultReference.getURIs(), to(searchResultReference.getControls())); } /** * Converts from OpenDJ LDAP SDK {@link Control} to OpenDJ server * {@link org.opends.server.protocols.ldap.LDAPControl}. * * @param control * value to convert * @return the converted value */ public static org.opends.server.protocols.ldap.LDAPControl to(final Control control) { return new LDAPControl(control.getOID(), control.isCritical(), control.getValue()); } /** * Converts from a <code>List</code> of OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.controls.Control} to a <code>List</code> * of OpenDJ server {@link org.opends.server.types.Control}. * * @param listOfControl * value to convert * @return the converted value */ public static List<org.opends.server.types.Control> to( final List<org.forgerock.opendj.ldap.controls.Control> listOfControl) { List<org.opends.server.types.Control> toListOfControl = new ArrayList<org.opends.server.types.Control>(listOfControl.size()); for (org.forgerock.opendj.ldap.controls.Control c : listOfControl) { toListOfControl.add(to(c)); } return toListOfControl; } /** * Converts from OpenDJ LDAP SDK {@link org.forgerock.opendj.ldap.Attribute} * to OpenDJ server {@link org.opends.server.types.RawAttribute}. * * @param attribute * value to convert * @return the converted value */ public static org.opends.server.types.RawAttribute to( final org.forgerock.opendj.ldap.Attribute attribute) { ArrayList<ByteString> listAttributeValues = new ArrayList<ByteString>(attribute.size()); Collections.addAll(listAttributeValues, attribute.toArray()); return new LDAPAttribute(attribute.getAttributeDescriptionAsString(), listAttributeValues); } /** * Converts from an <code>Iterable</code> of OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.Attribute} to a <code>List</code> of * OpenDJ server {@link org.opends.server.types.RawAttribute}. * * @param listOfAttributes * value to convert * @return the converted value */ public static List<org.opends.server.types.RawAttribute> to( final Iterable<org.forgerock.opendj.ldap.Attribute> listOfAttributes) { List<org.opends.server.types.RawAttribute> toListOfAttributes = new ArrayList<org.opends.server.types.RawAttribute>( ((Collection<org.forgerock.opendj.ldap.Attribute>) listOfAttributes).size()); for (org.forgerock.opendj.ldap.Attribute a : listOfAttributes) { toListOfAttributes.add(to(a)); } return toListOfAttributes; } /** * Converts from OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.Modification} to OpenDJ server * {@link org.opends.server.types.RawModification}. * * @param modification * value to convert * @return the converted value */ public static org.opends.server.types.RawModification to( final org.forgerock.opendj.ldap.Modification modification) { return new LDAPModification(to(modification.getModificationType()), to(modification .getAttribute())); } /** * Converts from a <code>List</code> of OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.Modification} to a <code>List</code> of * OpenDJ server {@link org.opends.server.types.RawModification}. * * @param listOfModifications * value to convert * @return the converted value */ public static List<org.opends.server.types.RawModification> toRawModifications( final List<org.forgerock.opendj.ldap.Modification> listOfModifications) { List<org.opends.server.types.RawModification> toListOfModifications = new ArrayList<org.opends.server.types.RawModification>(listOfModifications.size()); for (org.forgerock.opendj.ldap.Modification m : listOfModifications) { toListOfModifications.add(to(m)); } return toListOfModifications; } /** * Converts from OpenDJ LDAP SDK {@link org.forgerock.opendj.ldap.Attribute} * to OpenDJ server {@link org.opends.server.types.Attribute}. * * @param attribute * value to convert * @return the converted value */ public static org.opends.server.types.Attribute toAttribute( final org.forgerock.opendj.ldap.Attribute attribute) { final AttributeBuilder attrBuilder = new AttributeBuilder(attribute.getAttributeDescriptionAsString()); for (ByteString b : attribute.toArray()) { attrBuilder.add(b); } return attrBuilder.toAttribute(); } /** * Converts from an <code>Iterable</code> of OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.Attribute} to a <code>List</code> of * OpenDJ server {@link org.opends.server.types.RawAttribute}. * * @param listOfAttributes * value to convert * @return the converted value */ public static List<org.opends.server.types.Attribute> toAttributes( final Iterable<org.forgerock.opendj.ldap.Attribute> listOfAttributes) { List<org.opends.server.types.Attribute> toListOfAttributes = new ArrayList<org.opends.server.types.Attribute>( ((Collection<org.forgerock.opendj.ldap.Attribute>) listOfAttributes).size()); for (org.forgerock.opendj.ldap.Attribute a : listOfAttributes) { toListOfAttributes.add(toAttribute(a)); } return toListOfAttributes; } /** * Converts from OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.Modification} to OpenDJ server * {@link org.opends.server.types.Modification}. * * @param modification * value to convert * @return the converted value */ public static org.opends.server.types.Modification toModification( final org.forgerock.opendj.ldap.Modification modification) { return new org.opends.server.types.Modification(to(modification.getModificationType()), toAttribute(modification.getAttribute())); } /** * Converts from a <code>List</code> of OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.Modification} to a <code>List</code> of * OpenDJ server {@link org.opends.server.types.Modification}. * * @param listOfModifications * value to convert * @return the converted value */ public static List<org.opends.server.types.Modification> toModifications( final List<org.forgerock.opendj.ldap.Modification> listOfModifications) { List<org.opends.server.types.Modification> toListOfModifications = new ArrayList<org.opends.server.types.Modification>( listOfModifications.size()); for (org.forgerock.opendj.ldap.Modification m : listOfModifications) { toListOfModifications.add(toModification(m)); } return toListOfModifications; } /** * Converts from OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.ModificationType} to OpenDJ server * {@link org.opends.server.types.ModificationType}. * * @param modificationType * value to convert * @return the converted value */ public static org.opends.server.types.ModificationType to( final org.forgerock.opendj.ldap.ModificationType modificationType) { return org.opends.server.types.ModificationType.values()[modificationType.intValue()]; } /** * Converts from OpenDJ server {@link org.opends.server.types.SearchScope}. to * OpenDJ LDAP SDK {@link org.forgerock.opendj.ldap.SearchScope}. * * @param searchScope * value to convert * @return the converted value */ public static org.forgerock.opendj.ldap.SearchScope from( final org.opends.server.types.SearchScope searchScope) { if (searchScope == null) { return null; } return org.forgerock.opendj.ldap.SearchScope.values().get(searchScope.intValue()); } /** * Converts from OpenDJ server * {@link org.opends.server.protocols.ldap.LDAPControl} to OpenDJ LDAP SDK * {@link Control}. * * @param ldapControl * value to convert * @return the converted value */ public static Control from(final org.opends.server.protocols.ldap.LDAPControl ldapControl) { return GenericControl.newControl(ldapControl.getOID(), ldapControl.isCritical(), ldapControl.getValue()); } /** * Converts from OpenDJ server {@link org.opends.server.types.Control} to * OpenDJ LDAP SDK {@link Control}. * * @param control * value to convert * @return the converted value */ public static Control from(final org.opends.server.types.Control control) { String oid = null; boolean isCritical = false; ByteString value = null; // The server control doesn't have a method for extracting directly the value so, we need to ASN1 it. ByteStringBuilder builder = new ByteStringBuilder(); final ASN1Writer writer = ASN1.getWriter(builder); try { control.write(writer); } catch (IOException e) { // Nothing to do. } final ByteString sdkByteString = builder.toByteString(); final org.forgerock.opendj.io.ASN1Reader sdkReaderASN1 = org.forgerock.opendj.io.ASN1.getReader(sdkByteString.toByteArray()); // Reads the ASN1 SDK byte string. try { sdkReaderASN1.readStartSequence(); oid = sdkReaderASN1.readOctetStringAsString(); if (sdkReaderASN1.hasNextElement() && (sdkReaderASN1.peekType() == org.forgerock.opendj.io.ASN1.UNIVERSAL_BOOLEAN_TYPE)) { isCritical = sdkReaderASN1.readBoolean(); } if (sdkReaderASN1.hasNextElement() && (sdkReaderASN1.peekType() == org.forgerock.opendj.io.ASN1.UNIVERSAL_OCTET_STRING_TYPE)) { value = sdkReaderASN1.readOctetString(); } sdkReaderASN1.readEndSequence(); } catch (DecodeException e) { // Nothing to do. } catch (IOException e) { // Nothing to do. } // Creates the control return GenericControl.newControl(oid, isCritical, value); } /** * Converts from a <code>List</code> of OpenDJ server * {@link org.opends.server.types.Control} to a <code>List</code> of OpenDJ * LDAP SDK {@link org.forgerock.opendj.ldap.controls.Control}. * * @param listOfControl * value to convert * @return the converted value */ public static List<org.forgerock.opendj.ldap.controls.Control> from( final List<org.opends.server.types.Control> listOfControl) { List<org.forgerock.opendj.ldap.controls.Control> fromListofControl = new ArrayList<org.forgerock.opendj.ldap.controls.Control>(listOfControl.size()); for (org.opends.server.types.Control c : listOfControl) { fromListofControl.add(from(c)); } return fromListofControl; } /** * Converts from OpenDJ server * {@link org.opends.server.types.SearchResultReference} to OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.responses.SearchResultReference}. * * @param srvResultReference * value to convert * @return the converted value */ public static org.forgerock.opendj.ldap.responses.SearchResultReference from( final org.opends.server.types.SearchResultReference srvResultReference) { return Responses.newSearchResultReference(srvResultReference.getReferralURLString()); } /** * Converts from OpenDJ server {@link org.opends.server.types.Attribute} to * OpenDJ LDAP SDK {@link org.forgerock.opendj.ldap.Attribute}. * * @param attribute * value to convert * @return the converted value */ public static org.forgerock.opendj.ldap.Attribute from( final org.opends.server.types.Attribute attribute) { Attribute sdkAttribute = new LinkedAttribute(attribute.getNameWithOptions()); for (AttributeValue value : attribute) { sdkAttribute.add(value.getValue()); } return sdkAttribute; } /** * Converts from an <code>Iterable</code> of OpenDJ server * {@link org.opends.server.types.Attribute} to a <code>List</code> of OpenDJ * LDAP SDK {@link org.forgerock.opendj.ldap.Attribute}. * * @param listOfAttributes * value to convert * @return the converted value */ public static List<org.forgerock.opendj.ldap.Attribute> from( final Iterable<org.opends.server.types.Attribute> listOfAttributes) { List<org.forgerock.opendj.ldap.Attribute> fromListofAttributes = new ArrayList<org.forgerock.opendj.ldap.Attribute>( ((Collection<org.opends.server.types.Attribute>) listOfAttributes).size()); for (org.opends.server.types.Attribute a : listOfAttributes) { fromListofAttributes.add(from(a)); } return fromListofAttributes; } /** * Converts from OpenDJ server * {@link org.opends.server.types.SearchResultEntry} to OpenDJ LDAP SDK * {@link org.forgerock.opendj.ldap.responses.SearchResultEntry}. * * @param srvResultEntry * value to convert * @return the converted value */ public static org.forgerock.opendj.ldap.responses.SearchResultEntry from( final org.opends.server.types.SearchResultEntry srvResultEntry) { final SearchResultEntry searchResultEntry = Responses.newSearchResultEntry(srvResultEntry.getName().toString()); if (srvResultEntry.getAttributes() != null) { for (org.opends.server.types.Attribute a : srvResultEntry.getAttributes()) { searchResultEntry.addAttribute(from(a)); } } if (srvResultEntry.getControls() != null) { for (org.opends.server.types.Control c : srvResultEntry.getControls()) { searchResultEntry.addControl(from(c)); } } return searchResultEntry; } /** * Populates the result object with the operation details and return the * result object if it was successful. Otherwise, it throws an * {@link ErrorResultException}. * * @param <T> * the type of the result object * @param operation * used to populate the result * @param result * the result object to populate from the Operation * @return the result if successful, an {@link ErrorResultException} is thrown * otherwise * @throws ErrorResultException * when an error occurs */ public static <T extends Result> T getResponseResult(final Operation operation, final T result) throws ErrorResultException { if (operation.getReferralURLs() != null) { for (String ref : operation.getReferralURLs()) { result.addReferralURI(ref); } } if (operation.getResponseControls() != null) { for (org.opends.server.types.Control c : operation.getResponseControls()) { result.addControl(from(c)); } } result.setDiagnosticMessage((operation.getErrorMessage() != null ? operation .getErrorMessage().toString() : null)); result.setMatchedDN((operation.getMatchedDN() != null) ? operation.getMatchedDN() .toString() : null); if (result.isSuccess()) { return result; } else { throw ErrorResultException.newErrorResult(result); } } /** * Converts the OpenDJ server {@link Operation} object into an OpenDJ LDAP SDK * {@link Result} object. * * @param operation * value to convert * @return the converted value * @throws ErrorResultException * when an error occurs */ public static Result getResponseResult(final Operation operation) throws ErrorResultException { return getResponseResult(operation, newSDKResult(operation)); } private static Result newSDKResult(final Operation operation) { ResultCode rc = getResultCode(operation); if (operation instanceof BindOperation) { return Responses.newBindResult(rc); } else if (operation instanceof CompareOperation) { return Responses.newCompareResult(rc); } else if (operation instanceof ExtendedOperation) { return Responses.newGenericExtendedResult(rc); } return Responses.newResult(rc); } /** * Returns the OpenDJ LDAP SDK {@link ResultCode} extracted out of the OpenDJ * server {@link Operation}. * * @param operation * value to convert * @return the converted value */ public static ResultCode getResultCode(final Operation operation) { return ResultCode.valueOf(operation.getResultCode().getIntValue()); } /** * Converts from <code>byte[]</code> to OpenDJ server {@link ByteString}. * * @param authenticationValue * value to convert * @return the converted value */ public static ByteString getCredentials(final byte[] authenticationValue) { final org.opends.server.protocols.asn1.ASN1Reader reader = ASN1.getReader(authenticationValue); ByteString saslCred = ByteString.empty(); try { reader.readOctetStringAsString(); // Reads SASL Mechanism - RFC 4511 4.2 if (reader.hasNextElement()) { saslCred = reader.readOctetString(); // Reads credentials. } } catch (ASN1Exception e) { // Nothing to do. } return saslCred.toByteString(); } } opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/package-info.java
New file @@ -0,0 +1,31 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt * or http://forgerock.org/license/CDDLv1.0.html. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at legal-notices/CDDLv1_0.txt. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2013-2014 ForgeRock AS. */ /** * Classes for interacting with an embedded OpenDJ 2.x instance using the OpenDJ LDAP SDK. */ package org.forgerock.opendj.adapter.server3x; opendj-server3x-adapter/src/site/xdoc/index.xml.vm
New file @@ -0,0 +1,108 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- ! CCPL HEADER START ! ! This work is licensed under the Creative Commons ! Attribution-NonCommercial-NoDerivs 3.0 Unported License. ! To view a copy of this license, visit ! http://creativecommons.org/licenses/by-nc-nd/3.0/ ! or send a letter to Creative Commons, 444 Castro Street, ! Suite 900, Mountain View, California, 94041, USA. ! ! You can also obtain a copy of the license at ! trunk/opendj3/legal-notices/CC-BY-NC-ND.txt. ! See the License for the specific language governing permissions ! and limitations under the License. ! ! If applicable, add the following below this CCPL HEADER, with the fields ! enclosed by brackets "[]" replaced with your own identifying information: ! Portions Copyright [yyyy] [name of copyright owner] ! ! CCPL HEADER END ! ! Copyright 2013 ForgeRock AS ! --> <document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> <properties> <title>About ${project.name}</title> <author email="opendj-dev@forgerock.org">${project.organization.name}</author> </properties> <body> <section name="About ${project.name}"> <p> ${project.description} </p> </section> <section name="Documentation for ${project.name}"> <p> Javadoc for this module can be found <a href="apidocs/index.html">here</a>. </p> </section> <section name="Get ${project.name}"> <p> Start developing your applications by obtaining ${project.name} using any of the following methods: </p> <subsection name="Maven"> <p> By far the simplest method is to develop your application using Maven and add the following settings to your <b>pom.xml</b>: </p> <source><repositories> <repository> <id>forgerock-staging-repository</id> <name>ForgeRock Release Repository</name> <url>${mavenRepoReleases}</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>forgerock-snapshots-repository</id> <name>ForgeRock Snapshot Repository</name> <url>${mavenRepoSnapshots}</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories> ... <dependencies> <dependency> <groupId>${project.groupId}</groupId> <artifactId>${project.artifactId}</artifactId> <version>${project.version}</version> </dependency> </dependencies></source> </subsection> <subsection name="Download"> <p> If you are not using Maven then you will need to download a pre-built binary from the ForgeRock Maven repository, along with any compile time <a href="dependencies.html">dependencies</a>: </p> <ul> <li><a href="${mavenRepoReleases}/org/forgerock/opendj/${project.artifactId}">Stable releases</a></li> <li><a href="${mavenRepoSnapshots}/org/forgerock/opendj/${project.artifactId}/${project.version}">Latest development snapshot</a></li> </ul> </subsection> <subsection name="Build"> <p> For the DIY enthusiasts you can build it yourself by checking out the latest code using <a href="source-repository.html">Subversion</a> and building it with Maven 3. </p> </subsection> </section> <section name="Getting started"> <p> The following example shows how ${project.name} may be used: </p> <source>TODO</source> </section> </body> </document> opendj-server3x-adapter/src/test/java/org/forgerock/opendj/adapter/server3x/AdaptersTestCase.java
New file @@ -0,0 +1,1072 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt * or http://forgerock.org/license/CDDLv1.0.html. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at legal-notices/CDDLv1_0.txt. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Portions copyright 2013-2014 ForgeRock AS */ package org.forgerock.opendj.adapter.server3x; import static org.fest.assertions.Assertions.assertThat; import static org.fest.assertions.Fail.fail; import java.security.GeneralSecurityException; import java.util.NoSuchElementException; import org.forgerock.opendj.ldap.AuthenticationException; import org.forgerock.opendj.ldap.AuthorizationException; import org.forgerock.opendj.ldap.Connection; import org.forgerock.opendj.ldap.ConnectionFactory; import org.forgerock.opendj.ldap.Connections; import org.forgerock.opendj.ldap.ConstraintViolationException; import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.DecodeException; import org.forgerock.opendj.ldap.DecodeOptions; import org.forgerock.opendj.ldap.Entries; import org.forgerock.opendj.ldap.Entry; import org.forgerock.opendj.ldap.EntryNotFoundException; import org.forgerock.opendj.ldap.ErrorResultException; import org.forgerock.opendj.ldap.ErrorResultIOException; import org.forgerock.opendj.ldap.LDAPConnectionFactory; import org.forgerock.opendj.ldap.LinkedHashMapEntry; import org.forgerock.opendj.ldap.ModificationType; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.SearchResultReferenceIOException; import org.forgerock.opendj.ldap.SearchScope; import org.forgerock.opendj.ldap.controls.GenericControl; import org.forgerock.opendj.ldap.controls.MatchedValuesRequestControl; import org.forgerock.opendj.ldap.controls.PermissiveModifyRequestControl; import org.forgerock.opendj.ldap.controls.PreReadRequestControl; import org.forgerock.opendj.ldap.controls.PreReadResponseControl; import org.forgerock.opendj.ldap.controls.SubentriesRequestControl; import org.forgerock.opendj.ldap.requests.AddRequest; import org.forgerock.opendj.ldap.requests.CompareRequest; import org.forgerock.opendj.ldap.requests.DeleteRequest; import org.forgerock.opendj.ldap.requests.ModifyDNRequest; import org.forgerock.opendj.ldap.requests.ModifyRequest; import org.forgerock.opendj.ldap.requests.PlainSASLBindRequest; import org.forgerock.opendj.ldap.requests.Requests; import org.forgerock.opendj.ldap.requests.SearchRequest; import org.forgerock.opendj.ldap.requests.WhoAmIExtendedRequest; import org.forgerock.opendj.ldap.responses.BindResult; import org.forgerock.opendj.ldap.responses.CompareResult; import org.forgerock.opendj.ldap.responses.Result; import org.forgerock.opendj.ldap.responses.SearchResultEntry; import org.forgerock.opendj.ldap.responses.WhoAmIExtendedResult; import org.forgerock.opendj.ldif.ConnectionEntryReader; import org.forgerock.testng.ForgeRockTestCase; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import static org.forgerock.opendj.adapter.server3x.EmbeddedServerTestCaseUtils.CONFIG_PROPERTIES; /** * This class defines a set of tests for the Adapters.class. */ @SuppressWarnings("javadoc") @Test() public class AdaptersTestCase extends ForgeRockTestCase { /** * Provides an anonymous connection factories. * * @return Anonymous connection factories. */ @DataProvider public Object[][] anonymousConnectionFactories() { return new Object[][] { { new LDAPConnectionFactory("localhost", Integer.valueOf(CONFIG_PROPERTIES.getProperty("listen-port"))) }, { Adapters.newAnonymousConnectionFactory() } }; } /** * Provides root connection factories. * * @return Root connection factories. */ @DataProvider public Object[][] rootConnectionFactories() { return new Object[][] { { Connections.newAuthenticatedConnectionFactory( new LDAPConnectionFactory("localhost", Integer.valueOf(CONFIG_PROPERTIES.getProperty("listen-port"))), Requests.newSimpleBindRequest("cn=directory manager", "password".toCharArray())) }, { Adapters.newConnectionFactoryForUser(DN.valueOf("cn=directory manager")) } }; } /** * Launched before the tests, this function starts the embedded server and * adding data. * * @throws Exception * If the server could not be initialized. */ @BeforeClass public void startEmbeddedServer() throws Exception { EmbeddedServerTestCaseUtils.startServer(); // Creates a root connection to add data final Connection connection = Adapters.newRootConnection(); // @formatter:off connection.add( "dn: uid=user.0, dc=example,dc=org", "objectClass: top", "objectClass: person", "objectClass: inetOrgPerson", "objectClass: organizationalPerson", "cn: Aaccf Amar", "sn:user.0", "uid:user.0", "description: This is the description for Aaccf Amar.", "userPassword:: cGFzc3dvcmQ=", "postalAddress: Aaccf Amar$01251 Chestnut Street$Panama City, DE 50369", "postalCode: 50369"); connection.add( "dn: uid=user.1, dc=example,dc=org", "objectClass: top", "objectClass: person", "objectClass: inetOrgPerson", "objectClass: organizationalPerson", "cn: Aaren Atp", "sn:user.1", "uid:user.1", "description: This is the description for Aaren Atp.", "postalAddress: Aaren Atp$70110 Fourth Street$New Haven, OH 93694", "postalCode: 93694"); connection.add( "dn: uid=user.2, dc=example,dc=org", "objectClass: top", "objectClass: person", "objectClass: inetOrgPerson", "objectClass: organizationalPerson", "cn: Aarika Atpco", "sn: user.2", "uid:user.2", "description: This is the description for Aarika Atpco.", "userPassword:: cGFzc3dvcmQ=", "postalAddress: Aarika Atpco$00900 Maple Street$New Orleans, KS 10857", "postalCode: 10857"); connection.add( "dn: uid=user.3, dc=example,dc=org", "objectClass: top", "objectClass: person", "objectClass: inetOrgPerson", "objectClass: organizationalPerson", "cn: Aaron Atrc", "sn:user.3", "uid:user.3", "description: This is the description for Aaron Atrc.", "postalAddress: Aaron Atrc$59748 Willow Street$Green Bay, TN 66239", "postalCode: 66239"); connection.add( "dn: uid=user.4, dc=example,dc=org", "objectClass: top", "objectClass: person", "objectClass: inetOrgPerson", "objectClass: organizationalPerson", "cn: Samantha Carter", "sn: Carter", "uid:user.4", "description: This is the description for Samantha Carter.", "postalAddress: 59748 Willow Street$Green Bay, TN 66000", "postalCode: 66000"); // @formatter:on connection.close(); } /** * Stops the server at the end of the test class. */ @AfterClass public void shutDownEmbeddedServerServer() { EmbeddedServerTestCaseUtils.shutDownServer(); } /** * A simple LDAP connection. * * @throws ErrorResultException */ @Test() public void testSimpleLDAPConnectionFactorySimpleBind() throws ErrorResultException { final LDAPConnectionFactory factory = new LDAPConnectionFactory("localhost", Integer.valueOf(CONFIG_PROPERTIES.getProperty("listen-port"))); Connection connection = null; try { connection = factory.getConnection(); connection.bind("cn=Directory Manager", "password".toCharArray()); assertThat(connection.isValid()).isTrue(); assertThat(connection.isClosed()).isFalse(); } finally { if (connection != null) { connection.close(); } } } /** * Tests a SASL Bind with an LDAP connection. * * @throws NumberFormatException * @throws GeneralSecurityException * @throws ErrorResultException */ @Test() public void testLDAPSASLBind() throws NumberFormatException, GeneralSecurityException, ErrorResultException { LDAPConnectionFactory factory = new LDAPConnectionFactory("localhost", Integer.valueOf(CONFIG_PROPERTIES.getProperty("listen-port"))); Connection connection = factory.getConnection(); PlainSASLBindRequest request = Requests.newPlainSASLBindRequest("u:user.0", ("password").toCharArray()); try { connection.bind(request); } finally { if (connection != null) { connection.close(); } } } /** * Tests an SASL connection with the adapter. * * @throws ErrorResultException */ @Test() public void testAdapterConnectionSASLBindRequest() throws ErrorResultException, GeneralSecurityException { final Connection connection = Adapters.newRootConnection(); PlainSASLBindRequest request = Requests.newPlainSASLBindRequest("u:user.0", ("password").toCharArray()); try { connection.bind(request); } finally { if (connection != null) { connection.close(); } } } /** * This type of connection is not supported. Anonymous SASL Mechanisms is * disabled in the config.ldif file. * * @throws ErrorResultException */ @Test(dataProvider = "anonymousConnectionFactories", expectedExceptions = ErrorResultException.class) public void testConnectionAnonymousSASLBindRequest(final ConnectionFactory factory) throws ErrorResultException { final Connection connection = factory.getConnection(); try { connection.bind(Requests.newAnonymousSASLBindRequest("anonymousSASLBindRequest")); } finally { connection.close(); } } /** * Binds as a root. * * @throws Exception */ @Test() public void testAdapterConnectionSimpleBindAsRoot() throws Exception { final Connection connection = Adapters.newRootConnection(); final BindResult result = connection.bind("cn=Directory Manager", "password".toCharArray()); assertThat(connection.isValid()).isTrue(); assertThat(result.getResultCode()).isEqualTo(ResultCode.SUCCESS); connection.close(); } /** * Binds as a known user. * * @throws Exception */ @Test() public void testAdapterConnectionSimpleBindAsAUser() throws Exception { // user final Connection connection = Adapters.newConnectionForUser(DN.valueOf("uid=user.0,dc=example,dc=org")); final BindResult result = connection.bind("uid=user.0,dc=example,dc=org", "password".toCharArray()); assertThat(result.getResultCode()).isEqualTo(ResultCode.SUCCESS); connection.close(); } /** * Binds as a known user but using the wrong password. * * @throws Exception */ @Test(expectedExceptions = AuthenticationException.class) public void testAdapterConnectionSimpleBindAsAUserWrongPassword() throws Exception { // user final Connection connection = Adapters.newConnectionForUser(DN.valueOf("uid=user.0,dc=example,dc=org")); try { // Invalid credentials connection.bind("uid=user.0,dc=example,dc=org", "pass".toCharArray()); } finally { connection.close(); } } /** * Tries to bind as anonymous. * * @throws Exception */ @Test() public void testAdapterConnectionSimpleBind() throws Exception { // Anonymous final Connection connection = Adapters.newAnonymousConnection(); final BindResult result = connection.bind("", "".toCharArray()); assertThat(result.getDiagnosticMessage()).isEmpty(); connection.close(); } /** * Testing the adapters with a simple add request. * * @throws Exception */ @Test() public void testAdapterAddRequest() throws Exception { final Connection connection = Adapters.newRootConnection(); // @formatter:off final AddRequest addRequest = Requests.newAddRequest( "dn: sn=carter,dc=example,dc=org", "objectClass: top", "objectClass: person", "cn: scarter"); // @formatter:on final Result r = connection.add(addRequest); assertThat(r.getDiagnosticMessage()).isEmpty(); assertThat(r.isSuccess()).isTrue(); // We find the added entry : final SearchResultEntry srEntry = connection.searchSingleEntry(Requests.newSearchRequest( "sn=carter,dc=example,dc=org", SearchScope.BASE_OBJECT, "(cn=scarter)")); assertThat(srEntry.getName().toString()).isEqualTo("sn=carter,dc=example,dc=org"); connection.close(); } /** * Tries an add request but the entry already exists. * * @throws Exception */ @Test(dataProvider = "rootConnectionFactories", expectedExceptions = ConstraintViolationException.class) public void testAdapterAddRequestFails(final ConnectionFactory factory) throws Exception { final Connection connection = factory.getConnection(); // @formatter:off final AddRequest addRequest = Requests.newAddRequest( "dn: sn=bjensen,dc=example,dc=org", "objectClass: top", "objectClass: person", "cn: bjensen"); // @formatter:on // First add : Result r = connection.add(addRequest); assertThat(r.getDiagnosticMessage()).isEmpty(); assertThat(r.isSuccess()).isTrue(); // Second : try { r = connection.add(addRequest); } finally { connection.close(); } } /** * Uses the adapter to perform a search request. * * @throws Exception */ @Test() public void testAdapterSearchRequest() throws Exception { final Connection connection = Adapters.newRootConnection(); final SearchRequest request = Requests.newSearchRequest("dc=example,dc=org", SearchScope.WHOLE_SUBTREE, "(sn=user.1)"); // Performs the search : final ConnectionEntryReader reader = connection.search(request); assertThat(reader.isEntry()).isTrue(); final SearchResultEntry srEntry = reader.readEntry(); assertThat(srEntry).isNotNull(); Entry expectedEntry = new LinkedHashMapEntry("dn: uid=user.1,dc=example,dc=org", "objectClass: top", "objectClass: person", "objectClass: inetOrgPerson", "objectClass: organizationalPerson", "sn:user.1", "uid:user.1", "cn: Aaren Atp", "description: This is the description for Aaren Atp.", "postalAddress: Aaren Atp$70110 Fourth Street$New Haven, OH 93694", "postalCode: 93694"); Entry original = new LinkedHashMapEntry(srEntry); // No differences expected. assertThat(Entries.diffEntries(original, expectedEntry).getModifications()).isEmpty(); assertThat(srEntry.getName().toString()).isEqualTo("uid=user.1,dc=example,dc=org"); assertThat(srEntry.getAttributeCount()).isEqualTo(7); assertThat(srEntry.getAttribute("description").firstValueAsString()).isEqualTo( "This is the description for Aaren Atp."); assertThat(srEntry.getAttribute("postalAddress").firstValueAsString()).isEqualTo( "Aaren Atp$70110 Fourth Street$New Haven, OH 93694"); assertThat(srEntry.getAttribute("postalCode").firstValueAsString()).isEqualTo("93694"); // top - person - inetOrgPerson - organizationalPerson. assertThat(srEntry.getAttribute("objectClass").toArray().length).isEqualTo(4); assertThat(reader.hasNext()).isFalse(); connection.close(); } /** * Tries to perform a search with the adapter. No result expected. * * @throws Exception */ @Test(dataProvider = "rootConnectionFactories") public void testAdapterSearchRequestWithNoResults(final ConnectionFactory factory) throws Exception { final SearchRequest request = Requests.newSearchRequest("dc=example,dc=org", SearchScope.WHOLE_SUBTREE, "(uid=unknown)").addControl( MatchedValuesRequestControl.newControl(true, "(uid=user.1)")); final Connection connection = factory.getConnection(); ConnectionEntryReader reader = connection.search(request); assertThat(reader.hasNext()).isFalse(); connection.close(); } /** * Tries to perform a search single entry. Exception expected. * * @param factory * The connection factory. * @throws Exception */ @Test(dataProvider = "rootConnectionFactories", expectedExceptions = EntryNotFoundException.class) public void testAdapterSearchSingleEntryWithNoResults(final ConnectionFactory factory) throws Exception { final Connection connection = factory.getConnection(); try { connection.searchSingleEntry(Requests.newSearchRequest("dc=example,dc=org", SearchScope.WHOLE_SUBTREE, "(uid=unknown)")); } finally { connection.close(); } } /** * Performs a search with a sub entries request control. Sub-entries are * included and the normal entries are excluded. No result expected. * * @throws ErrorResultException * @throws ErrorResultIOException * @throws SearchResultReferenceIOException */ @Test(dataProvider = "rootConnectionFactories", expectedExceptions = NoSuchElementException.class) public void testAdapterSearchRequestSubEntriesWithNoResult(final ConnectionFactory factory) throws ErrorResultException, ErrorResultIOException, SearchResultReferenceIOException { final Connection connection = factory.getConnection(); try { final SearchRequest request = Requests.newSearchRequest("dc=example,dc=org", SearchScope.WHOLE_SUBTREE, "cn=*", "cn", "subtreeSpecification") // sub-entries included, normal entries excluded. .addControl(SubentriesRequestControl.newControl(true, true)); final ConnectionEntryReader reader = connection.search(request); assertThat(reader.isEntry()).isFalse(); assertThat(reader.isReference()).isFalse(); reader.readEntry(); } finally { connection.close(); } } /** * Performs a search with a sub entries request control. Sub-entries are * excluded this time and the normal entries are included. * * @throws ErrorResultException * @throws ErrorResultIOException * @throws SearchResultReferenceIOException */ @Test(dataProvider = "rootConnectionFactories") public void testAdapterSearchRequestSubEntries(final ConnectionFactory factory) throws ErrorResultException, ErrorResultIOException, SearchResultReferenceIOException { final Connection connection = factory.getConnection(); final SearchRequest request = Requests.newSearchRequest("dc=example,dc=org", SearchScope.WHOLE_SUBTREE, "cn=*", "cn", "subtreeSpecification") // sub-entries excluded, normal entries included. .addControl(SubentriesRequestControl.newControl(true, false)); final ConnectionEntryReader reader = connection.search(request); assertThat(reader.isEntry()).isTrue(); // All the entries are present. int nbEntries = 0; while (reader.hasNext()) { final SearchResultEntry entry = reader.readEntry(); assertThat(entry).isNotNull(); nbEntries++; } // All the entries must appear (except those which were deleted by another operation/test). assertThat(nbEntries >= 3); connection.close(); } /** * Deletes an inexistent entry. * * @throws ErrorResultException */ @Test(dataProvider = "rootConnectionFactories", expectedExceptions = EntryNotFoundException.class) public void testAdapterDeleteRequestNoSuchEntry(final ConnectionFactory factory) throws ErrorResultException { final DeleteRequest deleteRequest = Requests.newDeleteRequest("cn=test"); final Connection connection = factory.getConnection(); try { connection.delete(deleteRequest); } finally { connection.close(); } } /** * Deletes an existing entry with the 'no-op' control. * * @throws ErrorResultException */ @Test(dataProvider = "rootConnectionFactories") public void testAdapterDeleteRequestNoOpControl(final ConnectionFactory factory) throws ErrorResultException { final DeleteRequest deleteRequest = Requests.newDeleteRequest("uid=user.1, dc=example,dc=org") // The no-op control is specified with his OID. .addControl(GenericControl.newControl("1.3.6.1.4.1.4203.1.10.2")); final Connection connection = factory.getConnection(); final Result result = connection.delete(deleteRequest); assertThat(result.getResultCode()).isEqualTo(ResultCode.NO_OPERATION); // Verifies that the delete has no impact in this case (due to no_operation control) final SearchResultEntry srEntry = connection.searchSingleEntry(Requests.newSearchRequest( "uid=user.1, dc=example,dc=org", SearchScope.BASE_OBJECT, "(uid=user.1)")); assertThat(srEntry).isNotNull(); assertThat(srEntry.getName().toString()).isEqualTo("uid=user.1,dc=example,dc=org"); connection.close(); } /** * Deletes an existing entry. * * @throws ErrorResultException */ @Test() public void testAdapterDeleteRequest() throws ErrorResultException { final Connection connection = Adapters.newRootConnection(); // Checks if the entry exists. SearchResultEntry sre = connection.searchSingleEntry(Requests.newSearchRequest( "uid=user.3, dc=example,dc=org", SearchScope.BASE_OBJECT, "(uid=user.3)")); assertThat(sre).isNotNull(); final DeleteRequest deleteRequest = Requests.newDeleteRequest("uid=user.3, dc=example,dc=org"); connection.delete(deleteRequest); // Verifies if the entry was correctly deleted. try { connection.searchSingleEntry(Requests.newSearchRequest("uid=user.3, dc=example,dc=org", SearchScope.BASE_OBJECT, "(uid=user.3)")); fail(); } catch (EntryNotFoundException ex) { // Expected - no result. } finally { connection.close(); } } /** * Modifies an existing entry. * * @throws ErrorResultException * @throws DecodeException */ @Test() public void testAdapterModifyRequest() throws ErrorResultException, DecodeException { final ModifyRequest changeRequest = Requests.newModifyRequest("uid=user.2, dc=example,dc=org").addControl( PreReadRequestControl.newControl(true, "mail")).addModification( ModificationType.ADD, "mail", "modified@example.com"); final Connection connection = Adapters.newRootConnection(); final Result result = connection.modify(changeRequest); assertThat(result.getDiagnosticMessage()).isEmpty(); assertThat(result.getControls()).isNotEmpty(); assertThat(result.getControls().get(0).getOID()).isEqualTo("1.3.6.1.1.13.1"); // pre read control OID. assertThat(result.getControls().get(0).isCritical()).isFalse(); // pre read response control. assertThat(result.getMatchedDN()).isEmpty(); PreReadResponseControl control = result.getControl(PreReadResponseControl.DECODER, new DecodeOptions()); // Pre read control sends a copy of the target entry exactly as it was // immediately before the processing for that operation - mail attribute doesn't exist. Entry unmodifiedEntry = control.getEntry(); assertThat(unmodifiedEntry.getAttribute("mail")).isNull(); //Verifies that entry has been correctly modified. final SearchResultEntry srEntry = connection.searchSingleEntry(Requests.newSearchRequest( "uid=user.2, dc=example,dc=org", SearchScope.BASE_OBJECT, "(uid=user.2)")); assertThat(srEntry.getAttribute("mail").firstValueAsString()).isEqualTo( "modified@example.com"); } /** * Tries to modify the existing entry with the same values but using the * permissive modify control. * * @throws ErrorResultException */ @Test(dataProvider = "rootConnectionFactories") public void testAdapterUsePermissiveModifyRequest(final ConnectionFactory factory) throws ErrorResultException { final ModifyRequest changeRequest = Requests.newModifyRequest("uid=user.2, dc=example,dc=org").addControl( PermissiveModifyRequestControl.newControl(true)).addModification( ModificationType.ADD, "uid", "user.2"); final Connection connection = factory.getConnection(); connection.modify(changeRequest); // Verifies that entry has been correctly modified. final SearchResultEntry srEntry = connection.searchSingleEntry(Requests.newSearchRequest( "uid=user.2, dc=example,dc=org", SearchScope.BASE_OBJECT, "(uid=user.2)")); assertThat(srEntry.getAttribute("uid").firstValueAsString()).isEqualTo("user.2"); } /** * Tries to modify the existing entry with the same values. * * @throws ErrorResultException */ @Test(dataProvider = "rootConnectionFactories", expectedExceptions = ConstraintViolationException.class) public void testAdapterModifyRequestFails(final ConnectionFactory factory) throws ErrorResultException { final ModifyRequest changeRequest = Requests.newModifyRequest("uid=user.2, dc=example,dc=org").addModification( ModificationType.ADD, "uid", "user.2"); final Connection connection = factory.getConnection(); connection.modify(changeRequest); } /** * Modifies the DN. * * @throws ErrorResultException */ @Test(dataProvider = "rootConnectionFactories") public void testAdapterModifyDNRequest(final ConnectionFactory factory) throws ErrorResultException { final Connection connection = factory.getConnection(); // Verifies that entry has been correctly modified. final SearchResultEntry srEntryExists = connection.searchSingleEntry(Requests.newSearchRequest( "uid=user.4, dc=example,dc=org", SearchScope.BASE_OBJECT, "(uid=user.4)")); assertThat(srEntryExists).isNotNull(); // Modifying the DN. ModifyDNRequest changeRequest = Requests.newModifyDNRequest("uid=user.4,dc=example,dc=org", "uid=user.test") .setDeleteOldRDN(true); connection.modifyDN(changeRequest); // Checks previous mod. final SearchResultEntry srEntry = connection.searchSingleEntry(Requests.newSearchRequest( "uid=user.test, dc=example,dc=org", SearchScope.BASE_OBJECT, "(uid=user.test)")); assertThat(srEntry).isNotNull(); // Modify again the DN as previously. changeRequest = Requests.newModifyDNRequest("uid=user.test,dc=example,dc=org", "uid=user.4") .setDeleteOldRDN(true); connection.modifyDN(changeRequest); } /** * Compare request. The comparison returns true. * * @throws ErrorResultException */ @Test(dataProvider = "rootConnectionFactories") public void testAdapterCompareRequestTrue(final ConnectionFactory factory) throws ErrorResultException { final CompareRequest compareRequest = Requests.newCompareRequest("uid=user.0,dc=example,dc=org", "uid", "user.0"); final Connection connection = factory.getConnection(); final CompareResult result = connection.compare(compareRequest); assertThat(result.getResultCode()).isEqualTo(ResultCode.COMPARE_TRUE); assertThat(result.getDiagnosticMessage()).isEmpty(); assertThat(result.getControls()).isEmpty(); assertThat(result.getMatchedDN()).isEmpty(); } /** * Compare request. The comparison returns false. * * @throws ErrorResultException */ @Test(dataProvider = "rootConnectionFactories") public void testAdapterCompareRequestFalse(final ConnectionFactory factory) throws ErrorResultException { final CompareRequest compareRequest = Requests.newCompareRequest("uid=user.0,dc=example,dc=org", "uid", "scarter"); final Connection connection = factory.getConnection(); final CompareResult result = connection.compare(compareRequest); assertThat(result.getResultCode()).isEqualTo(ResultCode.COMPARE_FALSE); assertThat(result.getDiagnosticMessage()).isEmpty(); assertThat(result.getControls()).isEmpty(); assertThat(result.getMatchedDN()).isEmpty(); } /** * Use the Who Am I? extended request. * * @throws ErrorResultException */ @Test(dataProvider = "rootConnectionFactories") public void testAdapterExtendedOperation(final ConnectionFactory factory) throws ErrorResultException { final WhoAmIExtendedRequest request = Requests.newWhoAmIExtendedRequest(); final Connection connection = factory.getConnection(); try { final WhoAmIExtendedResult extResult = connection.extendedRequest(request); assertThat(extResult.getAuthorizationID()).isNotEmpty(); } finally { connection.close(); } } /** * If an anonymous tries to delete, sends a result code : insufficient * access rights. * * @throws ErrorResultException */ @Test(dataProvider = "anonymousConnectionFactories", expectedExceptions = AuthorizationException.class) public void testAdapterAsAnonymousCannotPerformDeleteRequest(final ConnectionFactory factory) throws ErrorResultException { final DeleteRequest deleteRequest = Requests.newDeleteRequest("uid=user.2,dc=example,dc=org"); final Connection connection = factory.getConnection(); try { connection.delete(deleteRequest); } finally { connection.close(); } } /** * If an anonymous tries to do an add request, sends a result code : * insufficient access rights. * * @throws ErrorResultException */ @Test(dataProvider = "anonymousConnectionFactories", expectedExceptions = AuthorizationException.class) public void testAdapterAsAnonymousCannotPerformAddRequest(final ConnectionFactory factory) throws ErrorResultException { // @formatter:off final AddRequest addRequest = Requests.newAddRequest( "dn: sn=scarter,dc=example,dc=org", "objectClass: top", "objectClass: person", "cn: scarter"); // @formatter:on final Connection connection = factory.getConnection(); try { connection.add(addRequest); } finally { connection.close(); } } /** * If an anonymous tries to do a modify DN request, sends a result code : * insufficient access rights. * * @throws ErrorResultException */ @Test(dataProvider = "anonymousConnectionFactories", expectedExceptions = AuthorizationException.class) public void testAdapterAsAnonymousCannotPerformModifyDNRequest(final ConnectionFactory factory) throws ErrorResultException { final Connection connection = factory.getConnection(); final ModifyDNRequest changeRequest = Requests.newModifyDNRequest("uid=user.2,dc=example,dc=org", "uid=user.test") .setDeleteOldRDN(true); try { connection.modifyDN(changeRequest); } finally { connection.close(); } } /** * If an anonymous tries to do a modify request, sends a result code : * insufficient access rights. * * @throws ErrorResultException */ @Test(dataProvider = "anonymousConnectionFactories", expectedExceptions = ErrorResultException.class) public void testAdapterAsAnonymousCannotPerformModifyRequest(final ConnectionFactory factory) throws ErrorResultException { final ModifyRequest changeRequest = Requests.newModifyRequest("uid=user.2,dc=example,dc=org").addControl( PreReadRequestControl.newControl(true, "mail")).addModification( ModificationType.REPLACE, "mail", "modified@example.com"); final Connection connection = factory.getConnection(); try { connection.modify(changeRequest); } finally { connection.close(); } } /** * The anonymous connection is allowed to perform compare request. * * @throws ErrorResultException */ @Test(dataProvider = "anonymousConnectionFactories") public void testAdapterAsAnonymousPerformsCompareRequest(final ConnectionFactory factory) throws ErrorResultException { final CompareRequest compareRequest = Requests.newCompareRequest("uid=user.0,dc=example,dc=org", "uid", "user.0"); final Connection connection = factory.getConnection(); final CompareResult result = connection.compare(compareRequest); assertThat(result.getResultCode()).isEqualTo(ResultCode.COMPARE_TRUE); assertThat(result.getDiagnosticMessage()).isEmpty(); assertThat(result.getControls()).isEmpty(); assertThat(result.getMatchedDN()).isEmpty(); connection.close(); } /** * The anonymous connection is allowed to perform search request. * * @throws Exception */ @Test(dataProvider = "anonymousConnectionFactories") public void testAdapterAsAnonymousPerformsSearchRequest(final ConnectionFactory factory) throws Exception { final SearchRequest request = Requests.newSearchRequest("dc=example,dc=org", SearchScope.WHOLE_SUBTREE, "(uid=user.1)"); final Connection connection = factory.getConnection(); final ConnectionEntryReader reader = connection.search(request); assertThat(reader.isEntry()).isTrue(); final SearchResultEntry entry = reader.readEntry(); assertThat(entry).isNotNull(); assertThat(entry.getName().toString()).isEqualTo("uid=user.1,dc=example,dc=org"); assertThat(reader.hasNext()).isFalse(); } /** * The anonymous connection is not allowed to perform search request * associated with a control. * <p> * Unavailable Critical Extension: The request control with Object * Identifier (OID) "x.x.x" cannot be used due to insufficient access * rights. * * @throws Exception */ @Test(dataProvider = "anonymousConnectionFactories", expectedExceptions = ErrorResultIOException.class) public void testAdapterAsAnonymousCannotPerformSearchRequestWithControl( final ConnectionFactory factory) throws Exception { final Connection connection = factory.getConnection(); final SearchRequest request = Requests.newSearchRequest("dc=example,dc=org", SearchScope.WHOLE_SUBTREE, "(uid=user.1)").addControl( MatchedValuesRequestControl.newControl(true, "(uid=user.1)")); final ConnectionEntryReader reader = connection.search(request); reader.readEntry(); } /** * Creates an LDAP Connection and performs some basic calls like * add/delete/search and compare results with an SDK adapter connection * doing the same. * * @throws ErrorResultException * @throws ErrorResultIOException * @throws SearchResultReferenceIOException */ @Test() public void testLDAPConnectionAndAdapterComparison() throws ErrorResultException, ErrorResultIOException, SearchResultReferenceIOException { // @formatter:off final AddRequest addRequest = Requests.newAddRequest( "dn: sn=babs,dc=example,dc=org", "objectClass: top", "objectClass: person", "cn: bjensen"); // @formatter:on final SearchRequest searchRequest = Requests.newSearchRequest("dc=example,dc=org", SearchScope.WHOLE_SUBTREE, "(uid=user.*)").addControl( MatchedValuesRequestControl.newControl(true, "(uid=user.1)")); final DeleteRequest deleteRequest = Requests.newDeleteRequest("sn=babs,dc=example,dc=org"); // LDAP Connection final LDAPConnectionFactory factory = new LDAPConnectionFactory("localhost", Integer.valueOf(CONFIG_PROPERTIES.getProperty("listen-port"))); Connection connection = null; connection = factory.getConnection(); connection.bind("cn=Directory Manager", "password".toCharArray()); assertThat(connection.isValid()).isTrue(); final Result addResult = connection.add(addRequest); assertThat(addResult.getResultCode()).isEqualTo(ResultCode.SUCCESS); final ConnectionEntryReader reader = connection.search(searchRequest); final Result deleteResult = connection.delete(deleteRequest); assertThat(deleteResult.getResultCode()).isEqualTo(ResultCode.SUCCESS); // SDK Adapter connection final Connection adapterConnection = Adapters.newRootConnection(); final Result sdkAddResult = adapterConnection.add(addRequest); final ConnectionEntryReader sdkReader = adapterConnection.search(searchRequest); final Result sdkDeleteResult = adapterConnection.delete(deleteRequest); // Compare the results : // AddRequest assertThat(addResult.getMatchedDN()).isEqualTo(sdkAddResult.getMatchedDN()); assertThat(addResult.getControls()).isEqualTo(sdkAddResult.getControls()); assertThat(addResult.getDiagnosticMessage()).isEqualTo(sdkAddResult.getDiagnosticMessage()); assertThat(addResult.getReferralURIs()).isEqualTo(sdkAddResult.getReferralURIs()); // DeleteRequest assertThat(deleteResult.getMatchedDN()).isEqualTo(sdkDeleteResult.getMatchedDN()); assertThat(deleteResult.getControls()).isEqualTo(sdkDeleteResult.getControls()); assertThat(deleteResult.getDiagnosticMessage()).isEqualTo( sdkDeleteResult.getDiagnosticMessage()); assertThat(deleteResult.getReferralURIs()).isEqualTo(sdkDeleteResult.getReferralURIs()); // ConnectionEntryReader SearchResultEntry entry = null; SearchResultEntry sdkEntry = null; while (reader.hasNext()) { entry = reader.readEntry(); sdkEntry = sdkReader.readEntry(); assertThat(entry.getName().toString()).isEqualTo(sdkEntry.getName().toString()); assertThat(entry.getAttributeCount()).isEqualTo(sdkEntry.getAttributeCount()); assertThat(entry.getAllAttributes().iterator().next().getAttributeDescription()) .isEqualTo( sdkEntry.getAllAttributes().iterator().next().getAttributeDescription()); assertThat(entry.getControls().size()).isEqualTo(sdkEntry.getControls().size()); } } } opendj-server3x-adapter/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java
New file @@ -0,0 +1,569 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt * or http://forgerock.org/license/CDDLv1.0.html. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at legal-notices/CDDLv1_0.txt. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2013-2014 ForgeRock AS. */ package org.forgerock.opendj.adapter.server3x; import static org.fest.assertions.Assertions.*; import static org.forgerock.opendj.adapter.server3x.Converters.*; import static org.mockito.Mockito.*; import static org.testng.Assert.*; import java.net.InetAddress; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.Filter; import org.forgerock.opendj.ldap.LinkedAttribute; import org.forgerock.opendj.ldap.Modification; import org.forgerock.opendj.ldap.ModificationType; import org.forgerock.opendj.ldap.controls.Control; import org.forgerock.opendj.ldap.controls.GenericControl; import org.forgerock.opendj.ldap.controls.PersistentSearchChangeType; import org.forgerock.opendj.ldap.controls.PersistentSearchRequestControl; import org.forgerock.opendj.ldap.controls.PostReadRequestControl; import org.forgerock.opendj.ldap.controls.ProxiedAuthV2RequestControl; import org.forgerock.opendj.ldap.requests.BindClient; import org.forgerock.opendj.ldap.requests.CRAMMD5SASLBindRequest; import org.forgerock.opendj.ldap.requests.GenericBindRequest; import org.forgerock.opendj.ldap.requests.PlainSASLBindRequest; import org.forgerock.opendj.ldap.requests.Requests; import org.forgerock.opendj.ldap.responses.BindResult; import org.forgerock.opendj.ldap.responses.CompareResult; import org.forgerock.opendj.ldap.responses.GenericExtendedResult; import org.forgerock.opendj.ldap.responses.Responses; import org.forgerock.opendj.ldap.responses.Result; import org.forgerock.testng.ForgeRockTestCase; import org.opends.server.core.BindOperation; import org.opends.server.core.CompareOperation; import org.opends.server.core.DirectoryServer; import org.opends.server.core.ExtendedOperation; import org.opends.server.core.SearchOperation; import org.opends.server.protocols.ldap.LDAPControl; import org.opends.server.protocols.ldap.LDAPFilter; import org.opends.server.types.Attribute; import org.opends.server.types.AttributeValue; import org.opends.server.types.AttributeValues; import org.opends.server.types.Attributes; import org.opends.server.types.DirectoryException; import org.opends.server.types.FilterType; import org.opends.server.types.LDAPException; import org.opends.server.types.Operation; import org.opends.server.types.ResultCode; import org.opends.server.types.SearchResultEntry; import org.opends.server.types.SearchResultReference; import org.testng.annotations.AfterGroups; import org.testng.annotations.BeforeGroups; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** * This class defines a set of tests for the StaticUtils.class. * <p> * Reminder : * * <pre> * to - from SDK to server. * from - from server to SDK. * </pre> */ @SuppressWarnings("javadoc") @Test() public class ConvertersTestCase extends ForgeRockTestCase { /** * Launched before the tests, this function starts the embedded server. * * @throws Exception * If the server could not be initialized. */ @BeforeGroups(groups = "needRunningServer") public void startServer() throws Exception { EmbeddedServerTestCaseUtils.startServer(); } /** * Stops the server at the end of the test class. */ @AfterGroups(groups = "needRunningServer") public void shutDownServer() { // Stops the server. EmbeddedServerTestCaseUtils.shutDownServer(); } /** * Converts a SDK {@link SearchResultEntry} to an LDAP Server * {@link SearchResultEntry}. */ @Test() public final void testToSearchResultEntry() throws Exception { org.forgerock.opendj.ldap.responses.SearchResultEntry entry = Responses.newSearchResultEntry(org.forgerock.opendj.ldap.DN .valueOf("uid=scarter,ou=People,dc=example,dc=com")); for (Control control : generateSdkControlsList()) { entry.addControl(control); } entry.addAttribute(new LinkedAttribute("test", "value1")); entry.addAttribute(new LinkedAttribute("Another", ByteString.valueOf("myValue"))); SearchResultEntry result = to(entry); assertThat(result.getName().toString()).isEqualTo(entry.getName().toString()); assertThat(result.getControls()).hasSize(entry.getControls().size()); assertThat(result.getAttributes()).hasSize(2); } /** * Converts a SDK Distinguished Name to a LDAP server Distinguish Name. Needs * a running server to work. * * @throws DirectoryException */ @Test(groups = { "needRunningServer" }) public final void testToDN() throws DirectoryException { final String dnString = "uid=scarter,ou=People,dc=example,dc=com"; org.forgerock.opendj.ldap.DN sdkDN = org.forgerock.opendj.ldap.DN.valueOf(dnString); org.opends.server.types.DN srvDN = to(sdkDN); assertThat(srvDN.toString()).isEqualTo(dnString); } @Test public final void testToRDN() throws DirectoryException { final String rdnString = "uid=scarter"; org.forgerock.opendj.ldap.RDN sdkRDN = org.forgerock.opendj.ldap.RDN.valueOf(rdnString); org.opends.server.types.RDN srvRDN = to(sdkRDN); assertThat(srvRDN.toString()).isEqualTo(rdnString); } /** * Converts a SDK DereferenceAliasesPolicy to an LDAP dereferencePolicy. * * @throws DirectoryException */ @Test() public final void testToDeferencePolicy() { org.forgerock.opendj.ldap.DereferenceAliasesPolicy sdkDeferenceAliasesPolicy = org.forgerock.opendj.ldap.DereferenceAliasesPolicy.ALWAYS; org.opends.server.types.DereferencePolicy dereferencePolicy = to(sdkDeferenceAliasesPolicy); assertThat(dereferencePolicy).isEqualTo( org.opends.server.types.DereferencePolicy.DEREF_ALWAYS); } /** * Converts a SDK control to a LDAP server control. * * @throws DirectoryException */ @Test() public final void testToControl() throws DirectoryException { final PersistentSearchRequestControl control = PersistentSearchRequestControl.newControl(false, true, true, // isCritical, changesOnly, returnECs PersistentSearchChangeType.ADD, PersistentSearchChangeType.DELETE, PersistentSearchChangeType.MODIFY, PersistentSearchChangeType.MODIFY_DN); // control : // PersistentSearchRequestControl(oid=2.16.840.1.113730.3.4.3, criticality=true, // changeTypes=[add, delete, modify, modifyDN]([add, delete, modify, modifyDN]), // changesOnly=true, returnECs=true) org.opends.server.protocols.ldap.LDAPControl srvControl = to(control); assertThat(srvControl.isCritical()).isFalse(); assertThat(srvControl.getOID()).isEqualTo("2.16.840.1.113730.3.4.3"); assertThat(control.getValue().toString()).isEqualTo(srvControl.getValue().toString()); // A PostReadRequestControl(SDK) final PostReadRequestControl control2 = PostReadRequestControl.newControl(true, "description"); srvControl = to(control2); assertThat(srvControl.getOID()).isEqualTo("1.3.6.1.1.13.2"); assertThat(srvControl.isCritical()).isTrue(); assertThat(control2.getValue().toString()).isEqualTo(srvControl.getValue().toString()); } /** * Converts a list of SDK controls to a list of LDAP server controls. * * @throws DirectoryException */ @Test() public final void testToListOfControl() throws DirectoryException { List<org.forgerock.opendj.ldap.controls.Control> mySDKControlsList = generateSdkControlsList(); List<org.opends.server.types.Control> listofControl = to(mySDKControlsList); assertThat(listofControl.size()).isEqualTo(3); assertThat(listofControl.get(0).getOID()).isEqualTo(mySDKControlsList.get(0).getOID()); assertThat(listofControl.get(0).isCritical()).isFalse(); assertThat(listofControl.get(1).getOID()).isEqualTo(mySDKControlsList.get(1).getOID()); assertThat(listofControl.get(1).isCritical()).isTrue(); assertThat(listofControl.get(2).getOID()).isEqualTo(mySDKControlsList.get(2).getOID()); assertThat(listofControl.get(2).isCritical()).isTrue(); } private List<org.forgerock.opendj.ldap.controls.Control> generateSdkControlsList() { final PersistentSearchRequestControl control = PersistentSearchRequestControl.newControl(false, true, true, // isCritical, changesOnly, returnECs PersistentSearchChangeType.ADD, PersistentSearchChangeType.DELETE, PersistentSearchChangeType.MODIFY, PersistentSearchChangeType.MODIFY_DN); assertThat(control.getOID()).isEqualTo("2.16.840.1.113730.3.4.3"); final PostReadRequestControl control2 = PostReadRequestControl.newControl(true, "description"); assertThat(control2.getOID()).isEqualTo("1.3.6.1.1.13.2"); final ProxiedAuthV2RequestControl control3 = ProxiedAuthV2RequestControl .newControl("dn:uid=kvaughan,ou=People,dc=example,dc=com"); assertThat(control3.getOID()).isEqualTo("2.16.840.1.113730.3.4.18"); List<org.forgerock.opendj.ldap.controls.Control> mySDKControlsList = new LinkedList<org.forgerock.opendj.ldap.controls.Control>(); mySDKControlsList.add(control); mySDKControlsList.add(control2); mySDKControlsList.add(control3); return mySDKControlsList; } /** * Converts an SDK attribute to an LDAP server attribute. */ @Test() public final void testToRawAttribute() throws DirectoryException { org.forgerock.opendj.ldap.Attribute attribute = new LinkedAttribute("test", "value1"); org.opends.server.types.RawAttribute srvAttribute = to(attribute); assertThat(srvAttribute.getAttributeType()).isEqualTo("test"); assertThat(srvAttribute.getValues()).hasSize(1); assertThat(srvAttribute.getValues().get(0).toString()).isEqualTo("value1"); org.forgerock.opendj.ldap.Attribute attribute2 = new LinkedAttribute("Another", ByteString.valueOf("myValue")); org.opends.server.types.RawAttribute srvAttribute2 = to(attribute2); assertThat(srvAttribute2.getAttributeType()).isEqualTo("Another"); assertThat(srvAttribute2.getValues()).hasSize(1); assertThat(srvAttribute2.getValues().get(0).toString()).isEqualTo("myValue"); } @Test(groups = { "needRunningServer" }) public final void testToAttribute() throws DirectoryException { org.forgerock.opendj.ldap.Attribute attribute = new LinkedAttribute("test", "value1"); org.opends.server.types.Attribute srvAttribute = toAttribute(attribute); assertThat(srvAttribute.getAttributeType().getNameOrOID().toString()).isEqualTo("test"); assertThat(srvAttribute.size()).isEqualTo(1); assertThat(srvAttribute.iterator().next().toString()).isEqualTo("value1"); org.forgerock.opendj.ldap.Attribute attribute2 = new LinkedAttribute("Another", ByteString.valueOf("myValue")); org.opends.server.types.Attribute srvAttribute2 = toAttribute(attribute2); assertThat(srvAttribute2.getAttributeType().getNameOrOID().toString()).isEqualTo("Another"); assertThat(srvAttribute2.size()).isEqualTo(1); assertThat(srvAttribute2.iterator().next().toString()).isEqualTo("myValue"); } /** * Converts an SDK multi-valued attribute to an LDAP Server Attribute. */ @Test(groups = { "needRunningServer" }) public final void testToRawAttributeMultiValued() throws DirectoryException { org.forgerock.opendj.ldap.Attribute attribute = new LinkedAttribute("testMultiValuedAttribute", "value1", "value2"); org.opends.server.types.RawAttribute srvAttribute = to(attribute); assertThat(srvAttribute.getAttributeType().toString()) .isEqualTo("testMultiValuedAttribute"); assertThat(srvAttribute.getValues().size()).isEqualTo(2); assertThat(srvAttribute.getValues().get(0).toString()).isEqualTo("value1"); assertThat(srvAttribute.getValues().get(1).toString()).isEqualTo("value2"); org.forgerock.opendj.ldap.Attribute attribute2 = new LinkedAttribute("AnotherMultiValuedAttribute", "value1", "value2", "value3", "value4"); org.opends.server.types.RawAttribute srvAttribute2 = to(attribute2); assertThat(srvAttribute2.getAttributeType().toString()).isEqualTo( "AnotherMultiValuedAttribute"); assertThat(srvAttribute2.getValues().size()).isEqualTo(4); assertThat(srvAttribute2.getValues().get(0).toString()).isEqualTo("value1"); assertThat(srvAttribute2.getValues().get(1).toString()).isEqualTo("value2"); assertThat(srvAttribute2.getValues().get(2).toString()).isEqualTo("value3"); assertThat(srvAttribute2.getValues().get(3).toString()).isEqualTo("value4"); } @Test public final void testToAttributeMultiValued() throws DirectoryException { org.forgerock.opendj.ldap.Attribute attribute = new LinkedAttribute("testMultiValuedAttribute", "value1", "value2"); org.opends.server.types.Attribute srvAttribute = toAttribute(attribute); assertThat(srvAttribute.getAttributeType().getNameOrOID().toString()) .isEqualTo("testMultiValuedAttribute"); assertThat(srvAttribute.size()).isEqualTo(2); Iterator<AttributeValue> iter = srvAttribute.iterator(); assertThat(iter.next().toString()).isEqualTo("value1"); assertThat(iter.next().toString()).isEqualTo("value2"); org.forgerock.opendj.ldap.Attribute attribute2 = new LinkedAttribute("AnotherMultiValuedAttribute", "value1", "value2", "value3", "value4"); org.opends.server.types.Attribute srvAttribute2 = toAttribute(attribute2); assertThat(srvAttribute2.getAttributeType().getNameOrOID().toString()) .isEqualTo("AnotherMultiValuedAttribute"); assertThat(srvAttribute2.size()).isEqualTo(4); iter = srvAttribute2.iterator(); assertThat(iter.next().toString()).isEqualTo("value1"); assertThat(iter.next().toString()).isEqualTo("value2"); assertThat(iter.next().toString()).isEqualTo("value3"); assertThat(iter.next().toString()).isEqualTo("value4"); } /** * Converts a SDK modification to an LDAP server raw modification. */ @Test() public final void testToRawModification() { org.forgerock.opendj.ldap.Attribute attribute = new LinkedAttribute("test", ByteString.valueOf("value1"), ByteString .valueOf("value2")); Modification mod = new Modification(ModificationType.ADD, attribute); org.opends.server.types.RawModification srvModification = to(mod); assertThat(srvModification.getModificationType().toString()).isEqualTo("Add"); assertThat(srvModification.getAttribute().getAttributeType()).isEqualTo("test"); assertThat(srvModification.getAttribute().getValues().size()).isEqualTo(2); mod = new Modification(ModificationType.INCREMENT, attribute); srvModification = to(mod); assertThat(srvModification.getModificationType().toString()).isEqualTo("Increment"); } @Test public final void testToModification() { org.forgerock.opendj.ldap.Attribute attribute = new LinkedAttribute("test", ByteString.valueOf("value1"), ByteString .valueOf("value2")); Modification mod = new Modification(ModificationType.ADD, attribute); org.opends.server.types.Modification srvModification = toModification(mod); assertThat(srvModification.getModificationType().toString()).isEqualTo("Add"); assertThat(srvModification.getAttribute().getAttributeType().getNameOrOID()).isEqualTo("test"); assertThat(srvModification.getAttribute().size()).isEqualTo(2); mod = new Modification(ModificationType.INCREMENT, attribute); srvModification = toModification(mod); assertThat(srvModification.getModificationType().toString()).isEqualTo("Increment"); } /** * Converts a SDK filter to an LDAP server filter. */ @Test() public final void testToFilter() throws LDAPException { Filter filter = Filter.valueOf("!(description=*)"); org.opends.server.protocols.ldap.LDAPFilter srvFilter = LDAPFilter.decode(filter.toString()); assertThat(srvFilter.getAttributeType()).isNull(); assertThat(srvFilter.getFilterType()).isEqualTo(FilterType.NOT); assertThat(srvFilter.getNOTComponent().toString()).isEqualTo("(description=*)"); filter = Filter.valueOf("(description=bjensen)"); srvFilter = LDAPFilter.decode(filter.toString()); assertThat(srvFilter.getAttributeType()).isEqualTo("description"); assertThat(srvFilter.getFilterType()).isEqualTo(FilterType.EQUALITY); assertThat(srvFilter.getAssertionValue().toString()).isEqualTo("bjensen"); } /** * Converts a SDK search result reference to a LDAP server search result * reference. */ @Test() public final void testToSearchResultReference() throws LDAPException { String uri = "ldap://hostb/OU=People,O=MNN,C=WW??sub"; final org.forgerock.opendj.ldap.responses.SearchResultReference sdkSearchResultReference = Responses.newSearchResultReference(uri); final org.opends.server.types.SearchResultReference srvResultReference = new SearchResultReference(uri); final org.opends.server.types.SearchResultReference srvResultReference2 = to(sdkSearchResultReference); assertThat(srvResultReference.getReferralURLString()).isEqualTo( srvResultReference2.getReferralURLString()); } /** * Converts an LDAP attribute to an SDK attribute. */ @Test(groups = { "needRunningServer" }) public final void testFromAttribute() throws DirectoryException { final org.opends.server.types.Attribute srvAttribute = Attributes.create("CN", "JOHN DOE"); final org.forgerock.opendj.ldap.Attribute sdkAttribute = from(srvAttribute); assertThat(sdkAttribute.getAttributeDescriptionAsString()).isEqualTo("CN"); assertThat(sdkAttribute.size()).isEqualTo(1); assertThat(sdkAttribute.firstValueAsString()).isEqualTo("JOHN DOE"); } /** * Converts an LDAP attribute to an SDK attribute using binary attribute value. */ @Test(groups = { "needRunningServer" }) public final void testFromAttributeUsingBinary() throws DirectoryException { byte[] data = { 0x00, 0x01, 0x02, (byte) 0xff }; AttributeValue value = AttributeValues.create(ByteString.wrap(data), ByteString.wrap(data)); Attribute attribute = Attributes.create(DirectoryServer.getAttributeType("cn"), value); assertThat(from(attribute).firstValue().toByteArray()).isEqualTo(data); } /** * Converts an LDAP control to an SDK control. */ @Test() public static void testFromLDAPControl() { org.opends.server.protocols.ldap.LDAPControl ldapControl = new LDAPControl("1.2.3.4", false, ByteString.valueOf("myData")); Control sdkControl = from(ldapControl); Control expectedSdkControl = GenericControl.newControl("1.2.3.4", false, "myData"); assertThat(sdkControl.getOID()).isEqualTo(expectedSdkControl.getOID()); assertThat(sdkControl.isCritical()).isEqualTo(expectedSdkControl.isCritical()); assertThat(sdkControl.getValue()).isEqualTo(expectedSdkControl.getValue()); } /** * Converts a server control to an SDK control. */ @Test() public static void testFromControl() { final org.opends.server.types.Control control = new LDAPControl("1.2.3.4", false, ByteString.valueOf("myData")); Control sdkControl = from(control); Control expectedSdkControl = GenericControl.newControl("1.2.3.4", false, "myData"); assertThat(sdkControl.getOID()).isEqualTo(expectedSdkControl.getOID()); assertThat(sdkControl.isCritical()).isEqualTo(expectedSdkControl.isCritical()); assertThat(sdkControl.getValue()).isEqualTo(expectedSdkControl.getValue()); } /** * For an SASL bind request, credentials are composed by uid and password * (in this config). */ @Test(groups = { "needRunningServer" }) public static void testgetCredentials() throws Exception { final PlainSASLBindRequest request = Requests.newPlainSASLBindRequest("u:user.0", ("password").toCharArray()); String serverName = InetAddress.getByName(null).getCanonicalHostName(); final BindClient bindClient = request.createBindClient(serverName); final GenericBindRequest genericBindRequest = bindClient.nextBindRequest(); assertThat(getCredentials(genericBindRequest.getAuthenticationValue())).isEqualTo( ByteString.valueOf("\u0000u:user.0\u0000password")); } /** * For an CRAMMD5 SALS request, the credentials are empty. */ @Test(groups = { "needRunningServer" }) public static void testgetCredentialsEmptyByteString() throws Exception { final CRAMMD5SASLBindRequest request = Requests.newCRAMMD5SASLBindRequest("u:user.2", ("password").toCharArray()); String serverName = InetAddress.getByName(null).getCanonicalHostName(); final BindClient bindClient = request.createBindClient(serverName); final GenericBindRequest genericBindRequest = bindClient.nextBindRequest(); assertThat(getCredentials(genericBindRequest.getAuthenticationValue())).isEqualTo( ByteString.empty()); } @Test public static void testToSearchScope() { org.opends.server.types.SearchScope[] expected = org.opends.server.types.SearchScope.values(); List<org.forgerock.opendj.ldap.SearchScope> actual = org.forgerock.opendj.ldap.SearchScope.values(); for (int i = 0; i < expected.length; i++) { assertEquals(to(actual.get(i)), expected[i]); } assertNull(to((org.forgerock.opendj.ldap.SearchScope) null)); } @Test public static void testFromSearchScope() { org.opends.server.types.SearchScope[] actual = org.opends.server.types.SearchScope.values(); List<org.forgerock.opendj.ldap.SearchScope> expected = org.forgerock.opendj.ldap.SearchScope.values(); for (int i = 0; i < actual.length; i++) { assertEquals(from(actual[i]), expected.get(i)); } assertNull(from((org.opends.server.types.SearchScope) null)); } @DataProvider(name = "operation result type") public Object[][] getOperationResultTypes() { return new Object[][] { { BindOperation.class, BindResult.class }, { CompareOperation.class, CompareResult.class }, { ExtendedOperation.class, GenericExtendedResult.class }, { SearchOperation.class, Result.class }, }; } /** * Tests the type of the result based on the type of the provided operation. */ @Test(dataProvider = "operation result type") public static <O extends Operation, R extends Result> void testGetResponseResultAndResultType( Class<O> operationType, Class<R> resultType) throws Exception { // Given O operation = mock(operationType); when(operation.getResultCode()).thenReturn(ResultCode.SUCCESS); // When Result result = getResponseResult(operation); // Then assertThat(result.getResultCode()).isEqualTo( org.forgerock.opendj.ldap.ResultCode.SUCCESS); assertThat(result).isInstanceOf(resultType); } } opendj-server3x-adapter/src/test/java/org/forgerock/opendj/adapter/server3x/EmbeddedServerTestCaseUtils.java
New file @@ -0,0 +1,141 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt * or http://forgerock.org/license/CDDLv1.0.html. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at legal-notices/CDDLv1_0.txt. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2013-2014 ForgeRock AS. */ package org.forgerock.opendj.adapter.server3x; import static org.opends.server.util.StaticUtils.createEntry; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; import org.forgerock.testng.ForgeRockTestCase; import org.opends.server.backends.MemoryBackend; import org.opends.server.config.ConfigException; import org.opends.server.core.DirectoryServer; import org.opends.server.types.DirectoryEnvironmentConfig; import org.opends.server.types.Entry; import org.opends.server.types.InitializationException; import org.opends.server.util.BuildVersion; import org.opends.server.util.EmbeddedUtils; /** * This class defines a main functions for starting and stopping the embedded * server in test cases. */ class EmbeddedServerTestCaseUtils extends ForgeRockTestCase { /** * The configuration properties for the tests. */ final static Properties CONFIG_PROPERTIES = new Properties(); /** * The path to the test classes. */ final static String TEST_CLASSES_PATH = "./target/test-classes/"; /** * The path to the configuration folder. */ final static String TEST_CLASSES_PATH_CONFIG = "./target/test-classes/config/"; /** * Starts the embedded server. * * @throws Exception If an unexpected error occurred. */ public static void startServer() throws Exception { // Creates buildinfo file. final FileWriter fw = new FileWriter(new File(TEST_CLASSES_PATH_CONFIG, "buildinfo")); fw.write(BuildVersion.binaryVersion().toString()); fw.close(); // Embedded server files. DirectoryEnvironmentConfig envConfig = new DirectoryEnvironmentConfig(); envConfig.setServerRoot(new File(TEST_CLASSES_PATH)); envConfig.setConfigFile(new File(TEST_CLASSES_PATH_CONFIG, "config.ldif")); new File("./target/test-classes/logs").mkdirs(); if (EmbeddedUtils.isRunning()) { return; } else { try { EmbeddedUtils.startServer(envConfig); // If something went wrong starting the server, log what happened. } catch (ConfigException ex) { Logger.getLogger("AdaptersTestCase - Server Config").log(Level.SEVERE, null, ex); } catch (InitializationException ex) { Logger.getLogger("AdaptersTestCase - Server Initialization").log(Level.SEVERE, null, ex); } } // We use a memory backend for the tests. org.opends.server.types.DN baseDN = org.opends.server.types.DN.valueOf("dc=example,dc=org"); MemoryBackend memoryBackend = new MemoryBackend(); memoryBackend.setBackendID("test-server2x"); memoryBackend.setBaseDNs(new org.opends.server.types.DN[] { baseDN }); memoryBackend.initializeBackend(); DirectoryServer.registerBackend(memoryBackend); memoryBackend.clearMemoryBackend(); // The backend must be initialized before adding the entry. Entry e = createEntry(baseDN); memoryBackend.addEntry(e, null); assertTrue(EmbeddedUtils.isRunning()); // Loading the properties requested for port numbers. loadProperties(); } /** * Stops the embedded server. */ public static void shutDownServer() { // Stops the server. EmbeddedUtils.stopServer("AdaptersTestCase", null); assertFalse(EmbeddedUtils.isRunning()); } private static void loadProperties() { try { CONFIG_PROPERTIES.load(new FileInputStream(TEST_CLASSES_PATH_CONFIG + "config.properties")); } catch (IOException ex) { Logger.getLogger("AdaptersTestCase - Access to config properties").log(Level.SEVERE, null, ex); } } } opendj-server3x-adapter/src/test/resources/config/admin-backend.ldif
New file @@ -0,0 +1,47 @@ dn: cn=admin data objectClass: top objectClass: ds-cfg-branch cn: admin data entryUUID: 46e489f6-1f92-3120-990f-54a178e95b21 dn: cn=instance keys,cn=admin data objectClass: top objectClass: ds-cfg-branch cn: instance keys entryUUID: 66ceef12-f0d6-355e-9e9b-9bdcfe536d8c dn: cn=secret keys,cn=admin data objectClass: top objectClass: ds-cfg-branch cn: secret keys entryUUID: 26176404-8825-3f77-9efd-c52bd4061f3b dn: cn=Administrators,cn=admin data objectClass: top objectClass: groupofurls description: Group of identities which have full access. cn: Administrators memberURL: ldap:///cn=Administrators,cn=admin data??one?(objectclass=*) entryUUID: 80faa47a-77d6-3c78-a3c1-ea6ccbd2f735 dn: cn=Server Groups,cn=admin data objectClass: top objectClass: ds-cfg-branch cn: Server Groups entryUUID: 9ee2aa25-d738-31fc-9fde-145fe9a53ae0 dn: cn=all-servers,cn=Server Groups,cn=admin data objectClass: groupOfUniqueNames objectClass: top cn: all-servers entryUUID: 00450d2d-26b0-3d92-b9e8-f616539697fa dn: ds-cfg-key-id=81CBCFAE9071CC6EE714E6335A66D8A7,cn=instance keys,cn=admin data objectClass: top objectClass: ds-cfg-instance-key ds-cfg-public-key-certificate;binary:: MIIB8TCCAVqgAwIBAgIEOhnIwDANBgkqhkiG9w0BAQUFADA9MRswGQYDVQQKExJPcGVuREogQ2VydGlmaWNhdGUxHjAcBgNVBAMTFXZpb2xldHRlLU9wdGlQbGV4LTk5MDAeFw0xMjEyMTgxNTQxMDFaFw0zMjEyMTMxNTQxMDFaMD0xGzAZBgNVBAoTEk9wZW5ESiBDZXJ0aWZpY2F0ZTEeMBwGA1UEAxMVdmlvbGV0dGUtT3B0aVBsZXgtOTkwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKwnHXiWOCCbjlsrPz2EYub5VY9If+cytTbAW/5N9jE7ggmmigwahsONq4RP+vgV5hFcuK5ubjI9pP07cUTpVaNYRLEds3GYIkahQqVZbfCdsjzP5c/DAEyy4IUQmcOOcUXDZStxNexly7jvkm/k8ikaBiBXtfZaAV9KFi2PVHlwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAE9cpVnnnidbsBeRipSnsSr7xDV0d64UP5Je1Sr9R8IgoMcyPoX+mTvhwHuqYddL7nHK0H7JTSjJ83fs+NtPwHmGI0eHvsqKOKzgGUU7qxTYgZdd4tV4/qpe8wyMWLKFBKlIrGud3kvO88yH+hVZ/0K+n4b1ER9FgEWYFSva4buh ds-cfg-key-id: 81CBCFAE9071CC6EE714E6335A66D8A7 creatorsName: cn=Internal Client,cn=Root DNs,cn=config createTimestamp: 20121218164903Z entryUUID: 93458591-36e0-4c3b-96d8-328c1c66b0bf opendj-server3x-adapter/src/test/resources/config/admin-keystoreBinary files differ
opendj-server3x-adapter/src/test/resources/config/admin-keystore.pin
New file @@ -0,0 +1 @@ 4R2G47wGK3Lm7iYNZpU221a57dJ0WvvZGVB8wpPzxHTCGZF1EZ opendj-server3x-adapter/src/test/resources/config/admin-truststoreBinary files differ
opendj-server3x-adapter/src/test/resources/config/ads-truststoreBinary files differ
opendj-server3x-adapter/src/test/resources/config/ads-truststore.pin
New file @@ -0,0 +1 @@ KJ435N1lUETK9ST9cB1CBJeLHMky8MXBFoD7HOw4eL38JUuSRW opendj-server3x-adapter/src/test/resources/config/config.ldif
New file @@ -0,0 +1,2631 @@ # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License, Version 1.0 only # (the "License"). You may not use this file except in compliance # with the License. # # You can obtain a copy of the license at legal-notices/CDDLv1_0.txt # or http://forgerock.org/license/CDDLv1.0.html. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at legal-notices/CDDLv1_0.txt. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: # Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # Copyright 2006-2010 Sun Microsystems, Inc. # Portions Copyright 2010-2014 ForgeRock AS. # Portions Copyright 2012-2014 Manuel Gaupp # # # This file contains the primary Directory Server configuration. It must not # be directly edited while the server is online. The server configuration # should only be managed using the administration utilities provided with the # Directory Server. dn: cn=config objectClass: top objectClass: ds-cfg-root-config cn: config ds-cfg-check-schema: true ds-cfg-add-missing-rdn-attributes: true ds-cfg-allow-attribute-name-exceptions: false ds-cfg-invalid-attribute-syntax-behavior: reject ds-cfg-single-structural-objectclass-behavior: reject ds-cfg-notify-abandoned-operations: false ds-cfg-proxied-authorization-identity-mapper: cn=Exact Match,cn=Identity Mappers,cn=config ds-cfg-size-limit: 1000 ds-cfg-time-limit: 60 seconds ds-cfg-lookthrough-limit: 5000 ds-cfg-writability-mode: enabled ds-cfg-bind-with-dn-requires-password: true ds-cfg-reject-unauthenticated-requests: false ds-cfg-default-password-policy: cn=Default Password Policy,cn=Password Policies,cn=config ds-cfg-return-bind-error-messages: false ds-cfg-idle-time-limit: 0 seconds ds-cfg-save-config-on-successful-startup: true ds-cfg-etime-resolution: milliseconds ds-cfg-entry-cache-preload: false ds-cfg-max-allowed-client-connections: 0 ds-cfg-max-psearches: -1 ds-cfg-allowed-task: org.opends.server.tasks.AddSchemaFileTask ds-cfg-allowed-task: org.opends.server.tasks.BackupTask ds-cfg-allowed-task: org.opends.server.tasks.DisconnectClientTask ds-cfg-allowed-task: org.opends.server.tasks.EnterLockdownModeTask ds-cfg-allowed-task: org.opends.server.tasks.ExportTask ds-cfg-allowed-task: org.opends.server.tasks.ImportTask ds-cfg-allowed-task: org.opends.server.tasks.InitializeTargetTask ds-cfg-allowed-task: org.opends.server.tasks.InitializeTask ds-cfg-allowed-task: org.opends.server.tasks.SetGenerationIdTask ds-cfg-allowed-task: org.opends.server.tasks.LeaveLockdownModeTask ds-cfg-allowed-task: org.opends.server.tasks.RebuildTask ds-cfg-allowed-task: org.opends.server.tasks.RestoreTask ds-cfg-allowed-task: org.opends.server.tasks.ShutdownTask ds-cfg-allowed-task: org.opends.server.tasks.PurgeConflictsHistoricalTask dn: cn=Access Control Handler,cn=config objectClass: top objectClass: ds-cfg-access-control-handler objectClass: ds-cfg-dsee-compat-access-control-handler ds-cfg-global-aci: (extop="1.3.6.1.4.1.26027.1.6.1 || 1.3.6.1.4.1.26027.1.6.3 || 1.3.6.1.4.1.4203.1.11.1 || 1.3.6.1.4.1.1466.20037 || 1.3.6.1.4.1.4203.1.11.3") (version 3.0; acl "Anonymous extended operation access"; allow(read) userdn="ldap:///anyone";) ds-cfg-global-aci: (targetcontrol="2.16.840.1.113730.3.4.2 || 2.16.840.1.113730.3.4.17 || 2.16.840.1.113730.3.4.19 || 1.3.6.1.4.1.4203.1.10.2 || 1.3.6.1.4.1.42.2.27.8.5.1 || 2.16.840.1.113730.3.4.16 || 1.2.840.113556.1.4.1413") (version 3.0; acl "Anonymous control access"; allow(read) userdn="ldap:///anyone";) ds-cfg-global-aci: (targetcontrol="1.3.6.1.1.12 || 1.3.6.1.1.13.1 || 1.3.6.1.1.13.2 || 1.2.840.113556.1.4.319 || 1.2.826.0.1.3344810.2.3 || 2.16.840.1.113730.3.4.18 || 2.16.840.1.113730.3.4.9 || 1.2.840.113556.1.4.473 || 1.3.6.1.4.1.42.2.27.9.5.9") (version 3.0; acl "Authenticated users control access"; allow(read) userdn="ldap:///all";) ds-cfg-global-aci: (targetattr!="userPassword||authPassword||debugsearchindex||changes||changeNumber||changeType||changeTime||targetDN||newRDN||newSuperior||deleteOldRDN")(version 3.0; acl "Anonymous read access"; allow (read,search,compare) userdn="ldap:///anyone";) ds-cfg-global-aci: (targetattr="audio||authPassword||description||displayName||givenName||homePhone||homePostalAddress||initials||jpegPhoto||labeledURI||mobile||pager||postalAddress||postalCode||preferredLanguage||telephoneNumber||userPassword")(version 3.0; acl "Self entry modification"; allow (write) userdn="ldap:///self";) ds-cfg-global-aci: (targetattr="userPassword||authPassword")(version 3.0; acl "Self entry read"; allow (read,search,compare) userdn="ldap:///self";) ds-cfg-global-aci: (target="ldap:///cn=schema")(targetscope="base")(targetattr="objectClass||attributeTypes||dITContentRules||dITStructureRules||ldapSyntaxes||matchingRules||matchingRuleUse||nameForms||objectClasses")(version 3.0; acl "User-Visible Schema Operational Attributes"; allow (read,search,compare) userdn="ldap:///anyone";) ds-cfg-global-aci: (target="ldap:///")(targetscope="base")(targetattr="objectClass||namingContexts||supportedAuthPasswordSchemes||supportedControl||supportedExtension||supportedFeatures||supportedLDAPVersion||supportedSASLMechanisms||supportedTLSCiphers||supportedTLSProtocols||vendorName||vendorVersion")(version 3.0; acl "User-Visible Root DSE Operational Attributes"; allow (read,search,compare) userdn="ldap:///anyone";) ds-cfg-global-aci: (targetattr="createTimestamp||creatorsName||modifiersName||modifyTimestamp||entryDN||entryUUID||subschemaSubentry||etag||governingStructureRule||structuralObjectClass||hasSubordinates||numSubordinates")(version 3.0; acl "User-Visible Operational Attributes"; allow (read,search,compare) userdn="ldap:///anyone";) ds-cfg-global-aci: (target="ldap:///dc=replicationchanges")(targetattr="*")(version 3.0; acl "Replication backend access"; deny (all) userdn="ldap:///anyone";) cn: Access Control Handler ds-cfg-java-class: org.opends.server.authorization.dseecompat.AciHandler ds-cfg-enabled: true dn: cn=Crypto Manager,cn=config objectClass: top objectClass: ds-cfg-crypto-manager cn: Crypto Manager ds-cfg-ssl-cert-nickname: ads-certificate ds-cfg-ssl-encryption: false dn: cn=Account Status Notification Handlers,cn=config objectClass: top objectClass: ds-cfg-branch cn: Account Status Notification Handlers dn: cn=Error Log Handler,cn=Account Status Notification Handlers,cn=config objectClass: top objectClass: ds-cfg-account-status-notification-handler objectClass: ds-cfg-error-log-account-status-notification-handler cn: Error Log Handler ds-cfg-java-class: org.opends.server.extensions.ErrorLogAccountStatusNotificationHandler ds-cfg-enabled: true ds-cfg-account-status-notification-type: account-temporarily-locked ds-cfg-account-status-notification-type: account-permanently-locked ds-cfg-account-status-notification-type: account-unlocked ds-cfg-account-status-notification-type: account-idle-locked ds-cfg-account-status-notification-type: account-reset-locked ds-cfg-account-status-notification-type: account-disabled ds-cfg-account-status-notification-type: account-enabled ds-cfg-account-status-notification-type: account-expired ds-cfg-account-status-notification-type: password-expired ds-cfg-account-status-notification-type: password-expiring ds-cfg-account-status-notification-type: password-reset ds-cfg-account-status-notification-type: password-changed dn: cn=SMTP Handler,cn=Account Status Notification Handlers,cn=config objectClass: top objectClass: ds-cfg-account-status-notification-handler objectClass: ds-cfg-smtp-account-status-notification-handler cn: SMTP Handler ds-cfg-java-class: org.opends.server.extensions.SMTPAccountStatusNotificationHandler ds-cfg-enabled: false ds-cfg-sender-address: opends-notifications@example.com ds-cfg-email-address-attribute-type: mail ds-cfg-send-message-without-end-user-address: false ds-cfg-message-template-file: account-temporarily-locked:config/messages/account-temporarily-locked.template ds-cfg-message-template-file: account-permanently-locked:config/messages/account-permanently-locked.template ds-cfg-message-template-file: account-unlocked:config/messages/account-unlocked.template ds-cfg-message-template-file: account-idle-locked:config/messages/account-idle-locked.template ds-cfg-message-template-file: account-reset-locked:config/messages/account-reset-locked.template ds-cfg-message-template-file: account-disabled:config/messages/account-disabled.template ds-cfg-message-template-file: account-enabled:config/messages/account-enabled.template ds-cfg-message-template-file: account-expired:config/messages/account-expired.template ds-cfg-message-template-file: password-expired:config/messages/password-expired.template ds-cfg-message-template-file: password-expiring:config/messages/password-expiring.template ds-cfg-message-template-file: password-reset:config/messages/password-reset.template ds-cfg-message-template-file: password-changed:config/messages/password-changed.template ds-cfg-message-subject: account-temporarily-locked:Your directory account has been locked ds-cfg-message-subject: account-permanently-locked:Your directory account has been locked ds-cfg-message-subject: account-unlocked:Your directory account has been unlocked ds-cfg-message-subject: account-idle-locked:Your directory account has been locked ds-cfg-message-subject: account-reset-locked:Your directory account has been locked ds-cfg-message-subject: account-disabled:Your directory account has been disabled ds-cfg-message-subject: account-enabled:Your directory account has been re-enabled ds-cfg-message-subject: account-expired:Your directory account has expired ds-cfg-message-subject: password-expired:Your directory password has expired ds-cfg-message-subject: password-expiring:Your directory password is going to expire ds-cfg-message-subject: password-reset:Your directory password has been reset ds-cfg-message-subject: password-changed:Your directory password has been changed dn: cn=Alert Handlers,cn=config objectClass: top objectClass: ds-cfg-branch cn: Alert Handlers dn: cn=JMX Alert Handler,cn=Alert Handlers,cn=config objectClass: top objectClass: ds-cfg-alert-handler objectClass: ds-cfg-jmx-alert-handler cn: JMX Alert Handler ds-cfg-java-class: org.opends.server.extensions.JMXAlertHandler ds-cfg-enabled: false dn: cn=Backends,cn=config objectClass: top objectClass: ds-cfg-branch cn: Backends dn: ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-backend objectClass: ds-cfg-local-db-backend ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.backends.jeb.BackendImpl ds-cfg-backend-id: userRoot ds-cfg-writability-mode: enabled ds-cfg-base-dn: dc=example,dc=com ds-cfg-db-directory: db ds-cfg-db-directory-permissions: 700 ds-cfg-index-entry-limit: 4000 ds-cfg-preload-time-limit: 0 seconds ds-cfg-entries-compressed: false ds-cfg-compact-encoding: true ds-cfg-db-cache-percent: 50 ds-cfg-db-cache-size: 0 megabytes ds-cfg-db-txn-no-sync: false ds-cfg-db-txn-write-no-sync: true ds-cfg-db-run-cleaner: true ds-cfg-db-cleaner-min-utilization: 50 ds-cfg-db-evictor-lru-only: true ds-cfg-db-evictor-nodes-per-scan: 10 ds-cfg-db-evictor-core-threads: 1 ds-cfg-db-evictor-max-threads: 10 ds-cfg-db-evictor-keep-alive: 600 seconds ds-cfg-db-log-file-max: 10 megabytes ds-cfg-db-log-filecache-size: 100 ds-cfg-db-logging-file-handler-on: true ds-cfg-db-logging-level: CONFIG ds-cfg-db-checkpointer-bytes-interval: 20 megabytes ds-cfg-db-checkpointer-wakeup-interval: 30 seconds ds-cfg-disk-full-threshold: 20 megabytes ds-cfg-disk-low-threshold: 100 megabytes dn: cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-branch cn: Index dn: ds-cfg-attribute=aci,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: aci ds-cfg-index-type: presence dn: ds-cfg-attribute=cn,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: cn ds-cfg-index-type: equality ds-cfg-index-type: substring dn: ds-cfg-attribute=ds-sync-hist,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: ds-sync-hist ds-cfg-index-type: ordering dn: ds-cfg-attribute=ds-sync-conflict,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: ds-sync-conflict ds-cfg-index-type: equality dn: ds-cfg-attribute=entryUUID,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: entryUUID ds-cfg-index-type: equality dn: ds-cfg-attribute=givenName,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: givenName ds-cfg-index-type: equality ds-cfg-index-type: substring dn: ds-cfg-attribute=mail,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: mail ds-cfg-index-type: equality ds-cfg-index-type: substring dn: ds-cfg-attribute=member,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: member ds-cfg-index-type: equality dn: ds-cfg-attribute=objectClass,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: objectClass ds-cfg-index-type: equality dn: ds-cfg-attribute=sn,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: sn ds-cfg-index-type: equality ds-cfg-index-type: substring dn: ds-cfg-attribute=telephoneNumber,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: telephoneNumber ds-cfg-index-type: equality ds-cfg-index-type: substring dn: ds-cfg-attribute=uid,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: uid ds-cfg-index-type: equality dn: ds-cfg-attribute=uniqueMember,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-attribute: uniqueMember ds-cfg-index-type: equality dn: cn=VLV Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-branch cn: VLV Index dn: ds-cfg-backend-id=backup,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-backend objectClass: ds-cfg-backup-backend ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.backends.BackupBackend ds-cfg-backend-id: backup ds-cfg-writability-mode: disabled ds-cfg-base-dn: cn=backups ds-cfg-backup-directory: bak dn: ds-cfg-backend-id=config,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-backend objectClass: ds-cfg-config-file-handler-backend ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.extensions.ConfigFileHandler ds-cfg-backend-id: config ds-cfg-writability-mode: enabled ds-cfg-base-dn: cn=config dn: ds-cfg-backend-id=ads-truststore,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-backend objectClass: ds-cfg-trust-store-backend ds-cfg-backend-id: ads-truststore ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.backends.TrustStoreBackend ds-cfg-writability-mode: enabled ds-cfg-base-dn: cn=ads-truststore ds-cfg-trust-store-type: JKS ds-cfg-trust-store-file: config/ads-truststore ds-cfg-trust-store-pin-file: config/ads-truststore.pin dn: ds-cfg-backend-id=monitor,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-backend objectClass: ds-cfg-monitor-backend ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.backends.MonitorBackend ds-cfg-backend-id: monitor ds-cfg-writability-mode: disabled ds-cfg-base-dn: cn=monitor dn: ds-cfg-backend-id=schema,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-backend objectClass: ds-cfg-schema-backend ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.backends.SchemaBackend ds-cfg-backend-id: schema ds-cfg-writability-mode: enabled ds-cfg-base-dn: cn=schema ds-cfg-show-all-attributes: false dn: ds-cfg-backend-id=tasks,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-backend objectClass: ds-cfg-task-backend ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.backends.task.TaskBackend ds-cfg-backend-id: tasks ds-cfg-writability-mode: enabled ds-cfg-base-dn: cn=tasks ds-cfg-task-backing-file: config/tasks.ldif ds-cfg-task-retention-time: 24 hours dn: ds-cfg-backend-id=adminRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-backend objectClass: ds-cfg-ldif-backend ds-cfg-backend-id: adminRoot ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.backends.LDIFBackend ds-cfg-writability-mode: enabled ds-cfg-base-dn: cn=admin data ds-cfg-ldif-file: config/admin-backend.ldif ds-cfg-is-private-backend: true dn: cn=Certificate Mappers,cn=config objectClass: top objectClass: ds-cfg-branch cn: Certificate Mappers dn: cn=Subject Equals DN,cn=Certificate Mappers,cn=config objectClass: top objectClass: ds-cfg-certificate-mapper objectClass: ds-cfg-subject-equals-dn-certificate-mapper cn: Subject Equals DN ds-cfg-java-class: org.opends.server.extensions.SubjectEqualsDNCertificateMapper ds-cfg-enabled: true dn: cn=Subject DN to User Attribute,cn=Certificate Mappers,cn=config objectClass: top objectClass: ds-cfg-certificate-mapper objectClass: ds-cfg-subject-dn-to-user-attribute-certificate-mapper cn: Subject DN to User Attribute ds-cfg-java-class: org.opends.server.extensions.SubjectDNToUserAttributeCertificateMapper ds-cfg-enabled: true ds-cfg-subject-attribute: ds-certificate-subject-dn dn: cn=Subject Attribute to User Attribute,cn=Certificate Mappers,cn=config objectClass: top objectClass: ds-cfg-certificate-mapper objectClass: ds-cfg-subject-attribute-to-user-attribute-certificate-mapper cn: Subject Attribute to User Attribute ds-cfg-java-class: org.opends.server.extensions.SubjectAttributeToUserAttributeCertificateMapper ds-cfg-enabled: true ds-cfg-subject-attribute-mapping: cn:cn ds-cfg-subject-attribute-mapping: emailAddress:mail dn: cn=Fingerprint Mapper,cn=Certificate Mappers,cn=config objectClass: top objectClass: ds-cfg-certificate-mapper objectClass: ds-cfg-fingerprint-certificate-mapper cn: Fingerprint Mapper ds-cfg-java-class: org.opends.server.extensions.FingerprintCertificateMapper ds-cfg-enabled: true ds-cfg-fingerprint-attribute: ds-certificate-fingerprint ds-cfg-fingerprint-algorithm: MD5 dn: cn=Connection Handlers,cn=config objectClass: top objectClass: ds-cfg-branch cn: Connection Handlers dn: cn=LDAP Connection Handler,cn=Connection Handlers,cn=config objectClass: top objectClass: ds-cfg-connection-handler objectClass: ds-cfg-ldap-connection-handler cn: LDAP Connection Handler ds-cfg-java-class: org.opends.server.protocols.ldap.LDAPConnectionHandler ds-cfg-enabled: true ds-cfg-listen-address: 0.0.0.0 ds-cfg-listen-port: ${listen-port} ds-cfg-accept-backlog: 128 ds-cfg-allow-ldap-v2: true ds-cfg-keep-stats: true ds-cfg-use-tcp-keep-alive: true ds-cfg-use-tcp-no-delay: true ds-cfg-allow-tcp-reuse-address: true ds-cfg-send-rejection-notice: true ds-cfg-max-request-size: 5 megabytes ds-cfg-buffer-size: 4096 bytes ds-cfg-max-blocked-write-time-limit: 2 minutes ds-cfg-allow-start-tls: false ds-cfg-use-ssl: false ds-cfg-ssl-client-auth-policy: optional ds-cfg-ssl-cert-nickname: server-cert dn: cn=LDAPS Connection Handler,cn=Connection Handlers,cn=config objectClass: top objectClass: ds-cfg-connection-handler objectClass: ds-cfg-ldap-connection-handler cn: LDAPS Connection Handler ds-cfg-java-class: org.opends.server.protocols.ldap.LDAPConnectionHandler ds-cfg-enabled: false ds-cfg-listen-address: 0.0.0.0 ds-cfg-listen-port: ${ldaps-listen-port} ds-cfg-accept-backlog: 128 ds-cfg-allow-ldap-v2: true ds-cfg-keep-stats: true ds-cfg-use-tcp-keep-alive: true ds-cfg-use-tcp-no-delay: true ds-cfg-allow-tcp-reuse-address: true ds-cfg-send-rejection-notice: true ds-cfg-max-request-size: 5 megabytes ds-cfg-buffer-size: 4096 bytes ds-cfg-max-blocked-write-time-limit: 2 minutes ds-cfg-allow-start-tls: false ds-cfg-use-ssl: true ds-cfg-ssl-client-auth-policy: optional ds-cfg-ssl-cert-nickname: server-cert ds-cfg-key-manager-provider: cn=JKS,cn=Key Manager Providers,cn=config ds-cfg-trust-manager-provider: cn=JKS,cn=Trust Manager Providers,cn=config dn: cn=HTTP Connection Handler,cn=Connection Handlers,cn=config objectClass: top objectClass: ds-cfg-connection-handler objectClass: ds-cfg-http-connection-handler cn: HTTP Connection Handler ds-cfg-java-class: org.opends.server.protocols.http.HTTPConnectionHandler ds-cfg-enabled: false ds-cfg-listen-address: 0.0.0.0 ds-cfg-listen-port: 8080 ds-cfg-accept-backlog: 128 ds-cfg-keep-stats: true ds-cfg-use-tcp-keep-alive: true ds-cfg-use-tcp-no-delay: true ds-cfg-allow-tcp-reuse-address: true ds-cfg-max-request-size: 5 megabytes ds-cfg-buffer-size: 4096 bytes ds-cfg-max-blocked-write-time-limit: 2 minutes ds-cfg-use-ssl: false ds-cfg-ssl-client-auth-policy: optional ds-cfg-ssl-cert-nickname: server-cert ds-cfg-config-file: config/http-config.json ds-cfg-authentication-required: true dn: cn=LDIF Connection Handler,cn=Connection Handlers,cn=config objectClass: top objectClass: ds-cfg-connection-handler objectClass: ds-cfg-ldif-connection-handler cn: LDIF Connection Handler ds-cfg-java-class: org.opends.server.protocols.LDIFConnectionHandler ds-cfg-enabled: false ds-cfg-ldif-directory: config/auto-process-ldif ds-cfg-poll-interval: 5 seconds dn: cn=JMX Connection Handler,cn=Connection Handlers,cn=config objectClass: top objectClass: ds-cfg-connection-handler objectClass: ds-cfg-jmx-connection-handler cn: JMX Connection Handler ds-cfg-java-class: org.opends.server.protocols.jmx.JmxConnectionHandler ds-cfg-enabled: false ds-cfg-use-ssl: false ds-cfg-listen-port: 1689 ds-cfg-ssl-cert-nickname: server-cert dn: cn=Entry Caches,cn=config objectClass: top objectClass: ds-cfg-branch cn: Entry Caches dn: cn=FIFO,cn=Entry Caches,cn=config objectClass: top objectClass: ds-cfg-entry-cache objectClass: ds-cfg-fifo-entry-cache cn: FIFO ds-cfg-enabled: false ds-cfg-cache-level: 1 ds-cfg-java-class: org.opends.server.extensions.FIFOEntryCache dn: cn=Soft Reference,cn=Entry Caches,cn=config objectClass: top objectClass: ds-cfg-entry-cache objectClass: ds-cfg-soft-reference-entry-cache cn: Soft Reference ds-cfg-enabled: false ds-cfg-cache-level: 2 ds-cfg-java-class: org.opends.server.extensions.SoftReferenceEntryCache dn: cn=File System,cn=Entry Caches,cn=config objectClass: top objectClass: ds-cfg-entry-cache objectClass: ds-cfg-file-system-entry-cache cn: File System ds-cfg-enabled: false ds-cfg-cache-level: 3 ds-cfg-java-class: org.opends.server.extensions.FileSystemEntryCache dn: cn=Extended Operations,cn=config objectClass: top objectClass: ds-cfg-branch cn: Extended Operations dn: cn=Cancel,cn=Extended Operations,cn=config objectClass: top objectClass: ds-cfg-extended-operation-handler objectClass: ds-cfg-cancel-extended-operation-handler cn: Cancel ds-cfg-java-class: org.opends.server.extensions.CancelExtendedOperation ds-cfg-enabled: true dn: cn=Get Connection ID,cn=Extended Operations,cn=config objectClass: top objectClass: ds-cfg-extended-operation-handler objectClass: ds-cfg-get-connection-id-extended-operation-handler cn: Get Connection ID ds-cfg-java-class: org.opends.server.extensions.GetConnectionIDExtendedOperation ds-cfg-enabled: true dn: cn=Password Modify,cn=Extended Operations,cn=config objectClass: top objectClass: ds-cfg-extended-operation-handler objectClass: ds-cfg-password-modify-extended-operation-handler cn: Password Modify ds-cfg-java-class: org.opends.server.extensions.PasswordModifyExtendedOperation ds-cfg-enabled: true ds-cfg-identity-mapper: cn=Exact Match,cn=Identity Mappers,cn=config dn: cn=Password Policy State,cn=Extended Operations,cn=config objectClass: top objectClass: ds-cfg-extended-operation-handler objectClass: ds-cfg-password-policy-state-extended-operation-handler cn: Password Policy State ds-cfg-java-class: org.opends.server.extensions.PasswordPolicyStateExtendedOperation ds-cfg-enabled: true dn: cn=StartTLS,cn=Extended Operations,cn=config objectClass: top objectClass: ds-cfg-extended-operation-handler objectClass: ds-cfg-start-tls-extended-operation-handler cn: StartTLS ds-cfg-java-class: org.opends.server.extensions.StartTLSExtendedOperation ds-cfg-enabled: true dn: cn=Get Symmetric Key,cn=Extended Operations,cn=config objectClass: top objectClass: ds-cfg-extended-operation-handler objectClass: ds-cfg-get-symmetric-key-extended-operation-handler cn: Get Symmetric Key ds-cfg-java-class: org.opends.server.crypto.GetSymmetricKeyExtendedOperation ds-cfg-enabled: true dn: cn=Who Am I,cn=Extended Operations,cn=config objectClass: top objectClass: ds-cfg-extended-operation-handler objectClass: ds-cfg-who-am-i-extended-operation-handler cn: Who Am I ds-cfg-java-class: org.opends.server.extensions.WhoAmIExtendedOperation ds-cfg-enabled: true dn: cn=Group Implementations,cn=config objectClass: top objectClass: ds-cfg-branch cn: Group Implementations dn: cn=Dynamic,cn=Group Implementations,cn=config objectClass: top objectClass: ds-cfg-group-implementation objectClass: ds-cfg-dynamic-group-implementation cn: Dynamic ds-cfg-java-class: org.opends.server.extensions.DynamicGroup ds-cfg-enabled: true dn: cn=Static,cn=Group Implementations,cn=config objectClass: top objectClass: ds-cfg-group-implementation objectClass: ds-cfg-static-group-implementation cn: Static ds-cfg-java-class: org.opends.server.extensions.StaticGroup ds-cfg-enabled: true dn: cn=Virtual Static,cn=Group Implementations,cn=config objectClass: top objectClass: ds-cfg-group-implementation objectClass: ds-cfg-virtual-static-group-implementation cn: Virtual Static ds-cfg-java-class: org.opends.server.extensions.VirtualStaticGroup ds-cfg-enabled: true dn: cn=Identity Mappers,cn=config objectClass: top objectClass: ds-cfg-branch cn: Identity Mappers dn: cn=Exact Match,cn=Identity Mappers,cn=config objectClass: top objectClass: ds-cfg-identity-mapper objectClass: ds-cfg-exact-match-identity-mapper cn: Exact Match ds-cfg-java-class: org.opends.server.extensions.ExactMatchIdentityMapper ds-cfg-enabled: true ds-cfg-match-attribute: uid dn: cn=Regular Expression,cn=Identity Mappers,cn=config objectClass: top objectClass: ds-cfg-identity-mapper objectClass: ds-cfg-regular-expression-identity-mapper cn: Regular Expression ds-cfg-java-class: org.opends.server.extensions.RegularExpressionIdentityMapper ds-cfg-enabled: true ds-cfg-match-attribute: uid ds-cfg-match-pattern: ^([^@]+)@.+$ ds-cfg-replace-pattern: $1 dn: cn=Key Manager Providers,cn=config objectClass: top objectClass: ds-cfg-branch cn: Key Manager Providers dn: cn=JKS,cn=Key Manager Providers,cn=config objectClass: top objectClass: ds-cfg-key-manager-provider objectClass: ds-cfg-file-based-key-manager-provider cn: JKS ds-cfg-java-class: org.opends.server.extensions.FileBasedKeyManagerProvider ds-cfg-enabled: false ds-cfg-key-store-type: JKS ds-cfg-key-store-file: config/keystore ds-cfg-key-store-pin-file: config/keystore.pin dn: cn=PKCS12,cn=Key Manager Providers,cn=config objectClass: top objectClass: ds-cfg-key-manager-provider objectClass: ds-cfg-file-based-key-manager-provider cn: PKCS12 ds-cfg-java-class: org.opends.server.extensions.FileBasedKeyManagerProvider ds-cfg-enabled: false ds-cfg-key-store-type: PKCS12 ds-cfg-key-store-file: config/keystore.p12 ds-cfg-key-store-pin-file: config/keystore.pin dn: cn=PKCS11,cn=Key Manager Providers,cn=config objectClass: top objectClass: ds-cfg-key-manager-provider objectClass: ds-cfg-pkcs11-key-manager-provider cn: PKCS11 ds-cfg-java-class: org.opends.server.extensions.PKCS11KeyManagerProvider ds-cfg-enabled: false ds-cfg-key-store-pin-file: config/keystore.pin dn: cn=Loggers,cn=config objectClass: top objectClass: ds-cfg-branch cn: Loggers dn: cn=File-Based Access Logger,cn=Loggers,cn=config objectClass: top objectClass: ds-cfg-log-publisher objectClass: ds-cfg-access-log-publisher objectClass: ds-cfg-file-based-access-log-publisher cn: File-Based Access Logger ds-cfg-java-class: org.opends.server.loggers.TextAccessLogPublisher ds-cfg-enabled: true ds-cfg-log-file: logs/access ds-cfg-log-file-permissions: 640 ds-cfg-suppress-internal-operations: true ds-cfg-suppress-synchronization-operations: false ds-cfg-asynchronous: true ds-cfg-rotation-policy: cn=24 Hours Time Limit Rotation Policy,cn=Log Rotation Policies,cn=config ds-cfg-rotation-policy: cn=Size Limit Rotation Policy,cn=Log Rotation Policies,cn=config ds-cfg-retention-policy: cn=File Count Retention Policy,cn=Log Retention Policies,cn=config dn: cn=File-Based HTTP Access Logger,cn=Loggers,cn=config objectClass: top objectClass: ds-cfg-log-publisher objectClass: ds-cfg-http-access-log-publisher objectClass: ds-cfg-file-based-http-access-log-publisher cn: File-Based HTTP Access Logger ds-cfg-java-class: org.opends.server.loggers.TextHTTPAccessLogPublisher ds-cfg-enabled: false ds-cfg-log-file: logs/http-access ds-cfg-log-file-permissions: 640 ds-cfg-asynchronous: true ds-cfg-rotation-policy: cn=24 Hours Time Limit Rotation Policy,cn=Log Rotation Policies,cn=config ds-cfg-rotation-policy: cn=Size Limit Rotation Policy,cn=Log Rotation Policies,cn=config ds-cfg-retention-policy: cn=File Count Retention Policy,cn=Log Retention Policies,cn=config dn: cn=File-Based Audit Logger,cn=Loggers,cn=config objectClass: top objectClass: ds-cfg-log-publisher objectClass: ds-cfg-access-log-publisher objectClass: ds-cfg-file-based-audit-log-publisher cn: File-Based Audit Logger ds-cfg-java-class: org.opends.server.loggers.TextAuditLogPublisher ds-cfg-enabled: false ds-cfg-log-file: logs/audit ds-cfg-log-file-permissions: 640 ds-cfg-suppress-internal-operations: true ds-cfg-suppress-synchronization-operations: false ds-cfg-asynchronous: true ds-cfg-rotation-policy: cn=24 Hours Time Limit Rotation Policy,cn=Log Rotation Policies,cn=config ds-cfg-rotation-policy: cn=Size Limit Rotation Policy,cn=Log Rotation Policies,cn=config ds-cfg-retention-policy: cn=File Count Retention Policy,cn=Log Retention Policies,cn=config dn: cn=File-Based Error Logger,cn=Loggers,cn=config objectClass: top objectClass: ds-cfg-log-publisher objectClass: ds-cfg-error-log-publisher objectClass: ds-cfg-file-based-error-log-publisher cn: File-Based Error Logger ds-cfg-java-class: org.opends.server.loggers.TextErrorLogPublisher ds-cfg-enabled: true ds-cfg-log-file: logs/errors ds-cfg-log-file-permissions: 640 ds-cfg-default-severity: severe-warning ds-cfg-default-severity: severe-error ds-cfg-default-severity: fatal-error ds-cfg-default-severity: notice ds-cfg-asynchronous: false ds-cfg-rotation-policy: cn=7 Days Time Limit Rotation Policy,cn=Log Rotation Policies,cn=config ds-cfg-rotation-policy: cn=Size Limit Rotation Policy,cn=Log Rotation Policies,cn=config ds-cfg-retention-policy: cn=File Count Retention Policy,cn=Log Retention Policies,cn=config dn: cn=Replication Repair Logger,cn=Loggers,cn=config objectClass: top objectClass: ds-cfg-log-publisher objectClass: ds-cfg-error-log-publisher objectClass: ds-cfg-file-based-error-log-publisher cn: Replication Repair Logger ds-cfg-java-class: org.opends.server.loggers.TextErrorLogPublisher ds-cfg-enabled: true ds-cfg-log-file: logs/replication ds-cfg-log-file-permissions: 640 ds-cfg-default-severity: none ds-cfg-override-severity: SYNC=INFO,MILD_ERROR,MILD_WARNING,NOTICE ds-cfg-asynchronous: false ds-cfg-rotation-policy: cn=7 Days Time Limit Rotation Policy,cn=Log Rotation Policies,cn=config ds-cfg-rotation-policy: cn=Size Limit Rotation Policy,cn=Log Rotation Policies,cn=config ds-cfg-retention-policy: cn=File Count Retention Policy,cn=Log Retention Policies,cn=config dn: cn=File-Based Debug Logger,cn=Loggers,cn=config objectClass: top objectClass: ds-cfg-log-publisher objectClass: ds-cfg-debug-log-publisher objectClass: ds-cfg-file-based-debug-log-publisher cn: File-Based Debug Logger ds-cfg-java-class: org.opends.server.loggers.TextDebugLogPublisher ds-cfg-enabled: false ds-cfg-log-file: logs/debug ds-cfg-log-file-permissions: 640 ds-cfg-asynchronous: false dn: cn=Log Rotation Policies,cn=config objectClass: top objectClass: ds-cfg-branch cn: Log Rotation Policies dn: cn=24 Hours Time Limit Rotation Policy,cn=Log Rotation Policies,cn=config objectClass: top objectClass: ds-cfg-log-rotation-policy objectClass: ds-cfg-time-limit-log-rotation-policy cn: Time Limit Rotation Policy ds-cfg-java-class: org.opends.server.loggers.TimeLimitRotationPolicy ds-cfg-rotation-interval: 24 hours dn: cn=7 Days Time Limit Rotation Policy,cn=Log Rotation Policies,cn=config objectClass: top objectClass: ds-cfg-log-rotation-policy objectClass: ds-cfg-time-limit-log-rotation-policy cn: Time Limit Rotation Policy ds-cfg-java-class: org.opends.server.loggers.TimeLimitRotationPolicy ds-cfg-rotation-interval: 7 days dn: cn=Size Limit Rotation Policy,cn=Log Rotation Policies,cn=config objectClass: top objectClass: ds-cfg-log-rotation-policy objectClass: ds-cfg-size-limit-log-rotation-policy cn: Size Limit Rotation Policy ds-cfg-java-class: org.opends.server.loggers.SizeBasedRotationPolicy ds-cfg-file-size-limit: 100 megabytes dn: cn=Fixed Time Rotation Policy,cn=Log Rotation Policies,cn=config objectClass: top objectClass: ds-cfg-log-rotation-policy objectClass: ds-cfg-fixed-time-log-rotation-policy cn: Fixed Time Rotation Policy ds-cfg-java-class: org.opends.server.loggers.FixedTimeRotationPolicy ds-cfg-time-of-day: 2359 dn: cn=Log Retention Policies,cn=config objectClass: top objectClass: ds-cfg-branch cn: Log Retention Policies dn: cn=File Count Retention Policy,cn=Log Retention Policies,cn=config objectClass: top objectClass: ds-cfg-log-retention-policy objectClass: ds-cfg-file-count-log-retention-policy cn: File Count Retention Policy ds-cfg-java-class: org.opends.server.loggers.FileNumberRetentionPolicy ds-cfg-number-of-files: 10 dn: cn=Free Disk Space Retention Policy,cn=Log Retention Policies,cn=config objectClass: top objectClass: ds-cfg-log-retention-policy objectClass: ds-cfg-free-disk-space-log-retention-policy cn: Free Disk Space Retention Policy ds-cfg-java-class: org.opends.server.loggers.FreeDiskSpaceRetentionPolicy ds-cfg-free-disk-space: 500 megabytes dn: cn=Size Limit Retention Policy,cn=Log Retention Policies,cn=config objectClass: top objectClass: ds-cfg-log-retention-policy objectClass: ds-cfg-size-limit-log-retention-policy cn: Size Limit Retention Policy ds-cfg-java-class: org.opends.server.loggers.SizeBasedRetentionPolicy ds-cfg-disk-space-used: 500 megabytes dn: cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-branch cn: Matching Rules dn: cn=Auth Password Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Auth Password Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.AuthPasswordEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Auth Password Exact Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Auth Password Exact Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.AuthPasswordExactEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Bit String Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Bit String Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.BitStringEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Boolean Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Boolean Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.BooleanEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Exact Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Case Exact Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseExactEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Exact Ordering Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-ordering-matching-rule cn: Case Exact Ordering Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseExactOrderingMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Exact Substring Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-substring-matching-rule cn: Case Exact Substring Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseExactSubstringMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Exact IA5 Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Case Exact IA5 Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseExactIA5EqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Exact IA5 Substring Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-substring-matching-rule cn: Case Exact IA5 Substring Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseExactIA5SubstringMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Ignore Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Case Ignore Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseIgnoreEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Ignore Ordering Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-ordering-matching-rule cn: Case Ignore Ordering Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseIgnoreOrderingMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Ignore Substring Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-substring-matching-rule cn: Case Ignore Substring Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseIgnoreSubstringMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Ignore IA5 Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Case Ignore IA5 Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseIgnoreIA5EqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Ignore IA5 Substring Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-substring-matching-rule cn: Case Ignore IA5 Substring Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseIgnoreIA5SubstringMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Ignore List Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Case Ignore List Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseIgnoreListEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Case Ignore List Substring Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-substring-matching-rule cn: Case Ignore List Substring Matching Rule ds-cfg-java-class: org.opends.server.schema.CaseIgnoreListSubstringMatchingRuleFactory ds-cfg-enabled: true dn: cn=Certificate Exact Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Certificate Exact Matching Rule ds-cfg-java-class: org.opends.server.schema.CertificateExactMatchingRuleFactory ds-cfg-enabled: true dn: cn=Collation Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-collation-matching-rule cn: Collation Matching Rule ds-cfg-java-class: org.opends.server.schema.CollationMatchingRuleFactory ds-cfg-enabled: true ds-cfg-matching-rule-type: equality ds-cfg-matching-rule-type: less-than ds-cfg-matching-rule-type: less-than-or-equal-to ds-cfg-matching-rule-type: greater-than ds-cfg-matching-rule-type: greater-than-or-equal-to ds-cfg-matching-rule-type: substring #ds-cfg-collation: af:1.3.6.1.4.1.42.2.27.9.4.1.1 #ds-cfg-collation: am:1.3.6.1.4.1.42.2.27.9.4.2.1 ds-cfg-collation: ar:1.3.6.1.4.1.42.2.27.9.4.3.1 ds-cfg-collation: ar-AE:1.3.6.1.4.1.42.2.27.9.4.4.1 ds-cfg-collation: ar-BH:1.3.6.1.4.1.42.2.27.9.4.5.1 ds-cfg-collation: ar-DZ:1.3.6.1.4.1.42.2.27.9.4.6.1 ds-cfg-collation: ar-EG:1.3.6.1.4.1.42.2.27.9.4.7.1 #ds-cfg-collation: ar-IN:1.3.6.1.4.1.42.2.27.9.4.8.1 ds-cfg-collation: ar-IQ:1.3.6.1.4.1.42.2.27.9.4.9.1 ds-cfg-collation: ar-JO:1.3.6.1.4.1.42.2.27.9.4.10.1 ds-cfg-collation: ar-KW:1.3.6.1.4.1.42.2.27.9.4.11.1 ds-cfg-collation: ar-LB:1.3.6.1.4.1.42.2.27.9.4.12.1 ds-cfg-collation: ar-LY:1.3.6.1.4.1.42.2.27.9.4.13.1 ds-cfg-collation: ar-MA:1.3.6.1.4.1.42.2.27.9.4.14.1 ds-cfg-collation: ar-OM:1.3.6.1.4.1.42.2.27.9.4.15.1 ds-cfg-collation: ar-QA:1.3.6.1.4.1.42.2.27.9.4.16.1 ds-cfg-collation: ar-SA:1.3.6.1.4.1.42.2.27.9.4.17.1 ds-cfg-collation: ar-SD:1.3.6.1.4.1.42.2.27.9.4.18.1 ds-cfg-collation: ar-SY:1.3.6.1.4.1.42.2.27.9.4.19.1 ds-cfg-collation: ar-TN:1.3.6.1.4.1.42.2.27.9.4.20.1 ds-cfg-collation: ar-YE:1.3.6.1.4.1.42.2.27.9.4.21.1 ds-cfg-collation: be:1.3.6.1.4.1.42.2.27.9.4.22.1 ds-cfg-collation: bg:1.3.6.1.4.1.42.2.27.9.4.23.1 #ds-cfg-collation: bn:1.3.6.1.4.1.42.2.27.9.4.24.1 ds-cfg-collation: ca:1.3.6.1.4.1.42.2.27.9.4.25.1 ds-cfg-collation: cs:1.3.6.1.4.1.42.2.27.9.4.26.1 ds-cfg-collation: da:1.3.6.1.4.1.42.2.27.9.4.27.1 ds-cfg-collation: de:1.3.6.1.4.1.42.2.27.9.4.28.1 ds-cfg-collation: de-DE:1.3.6.1.4.1.42.2.27.9.4.28.1 ds-cfg-collation: de-AT:1.3.6.1.4.1.42.2.27.9.4.29.1 #ds-cfg-collation: de-BE:1.3.6.1.4.1.42.2.27.9.4.30.1 ds-cfg-collation: de-CH:1.3.6.1.4.1.42.2.27.9.4.31.1 ds-cfg-collation: de-LU:1.3.6.1.4.1.42.2.27.9.4.32.1 ds-cfg-collation: el:1.3.6.1.4.1.42.2.27.9.4.33.1 ds-cfg-collation: en:1.3.6.1.4.1.42.2.27.9.4.34.1 ds-cfg-collation: en-US:1.3.6.1.4.1.42.2.27.9.4.34.1 ds-cfg-collation: en-AU:1.3.6.1.4.1.42.2.27.9.4.35.1 ds-cfg-collation: en-CA:1.3.6.1.4.1.42.2.27.9.4.36.1 ds-cfg-collation: en-GB:1.3.6.1.4.1.42.2.27.9.4.37.1 #ds-cfg-collation: en-HK:1.3.6.1.4.1.42.2.27.9.4.38.1 ds-cfg-collation: en-IE:1.3.6.1.4.1.42.2.27.9.4.39.1 ds-cfg-collation: en-IN:1.3.6.1.4.1.42.2.27.9.4.40.1 #ds-cfg-collation: en-MT:1.3.6.1.4.1.42.2.27.9.4.41.1 ds-cfg-collation: en-NZ:1.3.6.1.4.1.42.2.27.9.4.42.1 #ds-cfg-collation: en-PH:1.3.6.1.4.1.42.2.27.9.4.43.1 #ds-cfg-collation: en-SG:1.3.6.1.4.1.42.2.27.9.4.44.1 #ds-cfg-collation: en-VI:1.3.6.1.4.1.42.2.27.9.4.45.1 ds-cfg-collation: en-ZA:1.3.6.1.4.1.42.2.27.9.4.46.1 #ds-cfg-collation: en-ZW:1.3.6.1.4.1.42.2.27.9.4.47.1 #ds-cfg-collation: eo:1.3.6.1.4.1.42.2.27.9.4.48.1 ds-cfg-collation: es:1.3.6.1.4.1.42.2.27.9.4.49.1 ds-cfg-collation: es-ES:1.3.6.1.4.1.42.2.27.9.4.49.1 ds-cfg-collation: es-AR:1.3.6.1.4.1.42.2.27.9.4.50.1 ds-cfg-collation: es-BO:1.3.6.1.4.1.42.2.27.9.4.51.1 ds-cfg-collation: es-CL:1.3.6.1.4.1.42.2.27.9.4.52.1 ds-cfg-collation: es-CO:1.3.6.1.4.1.42.2.27.9.4.53.1 ds-cfg-collation: es-CR:1.3.6.1.4.1.42.2.27.9.4.54.1 ds-cfg-collation: es-DO:1.3.6.1.4.1.42.2.27.9.4.55.1 ds-cfg-collation: es-EC:1.3.6.1.4.1.42.2.27.9.4.56.1 ds-cfg-collation: es-GT:1.3.6.1.4.1.42.2.27.9.4.57.1 ds-cfg-collation: es-HN:1.3.6.1.4.1.42.2.27.9.4.58.1 ds-cfg-collation: es-MX:1.3.6.1.4.1.42.2.27.9.4.59.1 ds-cfg-collation: es-NI:1.3.6.1.4.1.42.2.27.9.4.60.1 ds-cfg-collation: es-PA:1.3.6.1.4.1.42.2.27.9.4.61.1 ds-cfg-collation: es-PE:1.3.6.1.4.1.42.2.27.9.4.62.1 ds-cfg-collation: es-PR:1.3.6.1.4.1.42.2.27.9.4.63.1 ds-cfg-collation: es-PY:1.3.6.1.4.1.42.2.27.9.4.64.1 ds-cfg-collation: es-SV:1.3.6.1.4.1.42.2.27.9.4.65.1 #ds-cfg-collation: es-US:1.3.6.1.4.1.42.2.27.9.4.66.1 ds-cfg-collation: es-UY:1.3.6.1.4.1.42.2.27.9.4.67.1 ds-cfg-collation: es-VE:1.3.6.1.4.1.42.2.27.9.4.68.1 ds-cfg-collation: et:1.3.6.1.4.1.42.2.27.9.4.69.1 #ds-cfg-collation: eu:1.3.6.1.4.1.42.2.27.9.4.70.1 #ds-cfg-collation: fa:1.3.6.1.4.1.42.2.27.9.4.71.1 #ds-cfg-collation: fa-IN:1.3.6.1.4.1.42.2.27.9.4.72.1 #ds-cfg-collation: fa-IR:1.3.6.1.4.1.42.2.27.9.4.73.1 ds-cfg-collation: fi:1.3.6.1.4.1.42.2.27.9.4.74.1 #ds-cfg-collation: fo:1.3.6.1.4.1.42.2.27.9.4.75.1 ds-cfg-collation: fr:1.3.6.1.4.1.42.2.27.9.4.76.1 ds-cfg-collation: fr-FR:1.3.6.1.4.1.42.2.27.9.4.76.1 ds-cfg-collation: fr-BE:1.3.6.1.4.1.42.2.27.9.4.77.1 ds-cfg-collation: fr-CA:1.3.6.1.4.1.42.2.27.9.4.78.1 ds-cfg-collation: fr-CH:1.3.6.1.4.1.42.2.27.9.4.79.1 ds-cfg-collation: fr-LU:1.3.6.1.4.1.42.2.27.9.4.80.1 #ds-cfg-collation: ga:1.3.6.1.4.1.42.2.27.9.4.81.1 #ds-cfg-collation: gl:1.3.6.1.4.1.42.2.27.9.4.82.1 #ds-cfg-collation: gu:1.3.6.1.4.1.42.2.27.9.4.83.1 #ds-cfg-collation: gv:1.3.6.1.4.1.42.2.27.9.4.84.1 ds-cfg-collation: he:1.3.6.1.4.1.42.2.27.9.4.85.1 #ds-cfg-collation: hi:1.3.6.1.4.1.42.2.27.9.4.86.1 ds-cfg-collation: hr:1.3.6.1.4.1.42.2.27.9.4.87.1 ds-cfg-collation: hu:1.3.6.1.4.1.42.2.27.9.4.88.1 #ds-cfg-collation: hy:1.3.6.1.4.1.42.2.27.9.4.89.1 #ds-cfg-collation: id:1.3.6.1.4.1.42.2.27.9.4.90.1 ds-cfg-collation: is:1.3.6.1.4.1.42.2.27.9.4.91.1 ds-cfg-collation: it:1.3.6.1.4.1.42.2.27.9.4.92.1 ds-cfg-collation: it-CH:1.3.6.1.4.1.42.2.27.9.4.93.1 ds-cfg-collation: ja:1.3.6.1.4.1.42.2.27.9.4.94.1 #ds-cfg-collation: kl:1.3.6.1.4.1.42.2.27.9.4.95.1 #ds-cfg-collation: kn:1.3.6.1.4.1.42.2.27.9.4.96.1 ds-cfg-collation: ko:1.3.6.1.4.1.42.2.27.9.4.97.1 #ds-cfg-collation: kok:1.3.6.1.4.1.42.2.27.9.4.98.1 #ds-cfg-collation: kw:1.3.6.1.4.1.42.2.27.9.4.99.1 ds-cfg-collation: lt:1.3.6.1.4.1.42.2.27.9.4.100.1 ds-cfg-collation: lv:1.3.6.1.4.1.42.2.27.9.4.101.1 ds-cfg-collation: mk:1.3.6.1.4.1.42.2.27.9.4.102.1 #ds-cfg-collation: mr:1.3.6.1.4.1.42.2.27.9.4.103.1 #ds-cfg-collation: mt:1.3.6.1.4.1.42.2.27.9.4.104.1 ds-cfg-collation: nl:1.3.6.1.4.1.42.2.27.9.4.105.1 ds-cfg-collation: nl-NL:1.3.6.1.4.1.42.2.27.9.4.105.1 ds-cfg-collation: nl-BE:1.3.6.1.4.1.42.2.27.9.4.106.1 ds-cfg-collation: no:1.3.6.1.4.1.42.2.27.9.4.107.1 ds-cfg-collation: no-NO:1.3.6.1.4.1.42.2.27.9.4.107.1 ds-cfg-collation: no-NO-NY:1.3.6.1.4.1.42.2.27.9.4.108.1 #ds-cfg-collation: nn:1.3.6.1.4.1.42.2.27.9.4.109.1 #ds-cfg-collation: nb:1.3.6.1.4.1.42.2.27.9.4.110.1 #ds-cfg-collation: no-NO-B:1.3.6.1.4.1.42.2.27.9.4.110.1 #ds-cfg-collation: om:1.3.6.1.4.1.42.2.27.9.4.111.1 #ds-cfg-collation: om-ET:1.3.6.1.4.1.42.2.27.9.4.112.1 #ds-cfg-collation: om-KE:1.3.6.1.4.1.42.2.27.9.4.113.1 ds-cfg-collation: pl:1.3.6.1.4.1.42.2.27.9.4.114.1 ds-cfg-collation: pt:1.3.6.1.4.1.42.2.27.9.4.115.1 ds-cfg-collation: pt-PT:1.3.6.1.4.1.42.2.27.9.4.115.1 ds-cfg-collation: pt-BR:1.3.6.1.4.1.42.2.27.9.4.116.1 ds-cfg-collation: ro:1.3.6.1.4.1.42.2.27.9.4.117.1 ds-cfg-collation: ru:1.3.6.1.4.1.42.2.27.9.4.118.1 ds-cfg-collation: ru-RU:1.3.6.1.4.1.42.2.27.9.4.118.1 #ds-cfg-collation: ru-UA:1.3.6.1.4.1.42.2.27.9.4.119.1 #ds-cfg-collation: sh:1.3.6.1.4.1.42.2.27.9.4.120.1 ds-cfg-collation: sk:1.3.6.1.4.1.42.2.27.9.4.121.1 ds-cfg-collation: sl:1.3.6.1.4.1.42.2.27.9.4.122.1 #ds-cfg-collation: so:1.3.6.1.4.1.42.2.27.9.4.123.1 #ds-cfg-collation: so-SO:1.3.6.1.4.1.42.2.27.9.4.123.1 #ds-cfg-collation: so-DJ:1.3.6.1.4.1.42.2.27.9.4.124.1 #ds-cfg-collation: so-ET:1.3.6.1.4.1.42.2.27.9.4.125.1 #ds-cfg-collation: so-KE:1.3.6.1.4.1.42.2.27.9.4.126.1 ds-cfg-collation: sq:1.3.6.1.4.1.42.2.27.9.4.127.1 ds-cfg-collation: sr:1.3.6.1.4.1.42.2.27.9.4.128.1 ds-cfg-collation: sv:1.3.6.1.4.1.42.2.27.9.4.129.1 ds-cfg-collation: sv-SE:1.3.6.1.4.1.42.2.27.9.4.129.1 #ds-cfg-collation: sv-FI:1.3.6.1.4.1.42.2.27.9.4.130.1 #ds-cfg-collation: sw:1.3.6.1.4.1.42.2.27.9.4.131.1 #ds-cfg-collation: sw-KE:1.3.6.1.4.1.42.2.27.9.4.132.1 #ds-cfg-collation: sw-TZ:1.3.6.1.4.1.42.2.27.9.4.133.1 #ds-cfg-collation: ta:1 3 1.3.6.1.4.1.42.2.27.9.4.134.1 #ds-cfg-collation: te:1.3.6.1.4.1.42.2.27.9.4.135.1 ds-cfg-collation: th:1.3.6.1.4.1.42.2.27.9.4.136.1 #ds-cfg-collation: ti:1.3.6.1.4.1.42.2.27.9.4.137.1 #ds-cfg-collation: ti-ER:1.3.6.1.4.1.42.2.27.9.4.138.1 #ds-cfg-collation: ti-ET:1.3.6.1.4.1.42.2.27.9.4.139.1 ds-cfg-collation: tr:1.3.6.1.4.1.42.2.27.9.4.140.1 ds-cfg-collation: uk:1.3.6.1.4.1.42.2.27.9.4.141.1 ds-cfg-collation: vi:1.3.6.1.4.1.42.2.27.9.4.142.1 ds-cfg-collation: zh:1.3.6.1.4.1.42.2.27.9.4.143.1 ds-cfg-collation: zh-CN:1.3.6.1.4.1.42.2.27.9.4.144.1 ds-cfg-collation: zh-HK:1.3.6.1.4.1.42.2.27.9.4.145.1 #ds-cfg-collation: zh-MO:1.3.6.1.4.1.42.2.27.9.4.146.1 #ds-cfg-collation: zh-SG:1.3.6.1.4.1.42.2.27.9.4.147.1 ds-cfg-collation: zh-TW:1.3.6.1.4.1.42.2.27.9.4.148.1 dn: cn=Directory String First Component Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Directory String First Component Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.DirectoryStringFirstComponentEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Distinguished Name Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Distinguished Name Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.DistinguishedNameEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Double Metaphone Approximate Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-approximate-matching-rule cn: Double Metaphone Approximate Matching Rule ds-cfg-java-class: org.opends.server.schema.DoubleMetaphoneApproximateMatchingRuleFactory ds-cfg-enabled: true dn: cn=Generalized Time Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Generalized Time Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.GeneralizedTimeEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Generalized Time Ordering Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-ordering-matching-rule cn: Generalized Time Ordering Matching Rule ds-cfg-java-class: org.opends.server.schema.GeneralizedTimeOrderingMatchingRuleFactory ds-cfg-enabled: true dn: cn=Historical CSN Ordering Matching Rule,cn=Matching Rules,cn=config objectClass: ds-cfg-ordering-matching-rule objectClass: top objectClass: ds-cfg-matching-rule ds-cfg-java-class: org.opends.server.replication.plugin.HistoricalCsnOrderingMatchingRuleFactory ds-cfg-enabled: true cn: Historical CSN Ordering Matching Rule dn: cn=Integer Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Integer Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.IntegerEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Integer Ordering Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-ordering-matching-rule cn: Integer Ordering Matching Rule ds-cfg-java-class: org.opends.server.schema.IntegerOrderingMatchingRuleFactory ds-cfg-enabled: true dn: cn=Integer First Component Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Integer First Component Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.IntegerFirstComponentEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Keyword Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Keyword Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.KeywordEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Numeric String Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Numeric String Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.NumericStringEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Numeric String Ordering Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-ordering-matching-rule cn: Numeric String Ordering Matching Rule ds-cfg-java-class: org.opends.server.schema.NumericStringOrderingMatchingRuleFactory ds-cfg-enabled: true dn: cn=Numeric String Substring Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-substring-matching-rule cn: Numeric String Substring Matching Rule ds-cfg-java-class: org.opends.server.schema.NumericStringSubstringMatchingRuleFactory ds-cfg-enabled: true dn: cn=Object Identifier Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Object Identifier Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.ObjectIdentifierEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Object Identifier First Component Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Object Identifier First Component Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.ObjectIdentifierFirstComponentEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Octet String Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Octet String Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.OctetStringEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Octet String Ordering Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-ordering-matching-rule cn: Octet String Ordering Matching Rule ds-cfg-java-class: org.opends.server.schema.OctetStringOrderingMatchingRuleFactory ds-cfg-enabled: true dn: cn=Octet String Substring Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-substring-matching-rule cn: Octet String Substring Matching Rule ds-cfg-java-class: org.opends.server.schema.OctetStringSubstringMatchingRuleFactory ds-cfg-enabled: true dn: cn=Presentation Address Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Presentation Address Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.PresentationAddressEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Protocol Information Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Protocol Information Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.ProtocolInformationEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Telephone Number Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Telephone Number Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.TelephoneNumberEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Telephone Number Substring Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-substring-matching-rule cn: Telephone Number Substring Matching Rule ds-cfg-java-class: org.opends.server.schema.TelephoneNumberSubstringMatchingRuleFactory ds-cfg-enabled: true dn: cn=Time Based Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-extensible-matching-rule cn: Time Based Matching Rule ds-cfg-java-class: org.opends.server.schema.TimeBasedMatchingRuleFactory ds-cfg-enabled: true dn: cn=Unique Member Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Unique Member Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.UniqueMemberEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=User Password Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: User Password Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.UserPasswordEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=User Password Exact Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: User Password Exact Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.UserPasswordExactEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=UUID Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: UUID Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.UUIDEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=UUID Ordering Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-ordering-matching-rule cn: UUID Ordering Matching Rule ds-cfg-java-class: org.opends.server.schema.UUIDOrderingMatchingRuleFactory ds-cfg-enabled: true dn: cn=Word Equality Matching Rule,cn=Matching Rules,cn=config objectClass: top objectClass: ds-cfg-matching-rule objectClass: ds-cfg-equality-matching-rule cn: Word Equality Matching Rule ds-cfg-java-class: org.opends.server.schema.WordEqualityMatchingRuleFactory ds-cfg-enabled: true dn: cn=Monitor Providers,cn=config objectClass: top objectClass: ds-cfg-branch cn: Monitor Providers dn: cn=Client Connections,cn=Monitor Providers,cn=config objectClass: top objectClass: ds-cfg-monitor-provider objectClass: ds-cfg-client-connection-monitor-provider cn: Client Connections ds-cfg-java-class: org.opends.server.monitors.ClientConnectionMonitorProvider ds-cfg-enabled: true dn: cn=Entry Caches,cn=Monitor Providers,cn=config objectClass: top objectClass: ds-cfg-monitor-provider objectClass: ds-cfg-entry-cache-monitor-provider cn: Entry Caches ds-cfg-java-class: org.opends.server.monitors.EntryCacheMonitorProvider ds-cfg-enabled: true dn: cn=JVM Memory Usage,cn=Monitor Providers,cn=config objectClass: top objectClass: ds-cfg-monitor-provider objectClass: ds-cfg-memory-usage-monitor-provider cn: JVM Memory Usage ds-cfg-java-class: org.opends.server.monitors.MemoryUsageMonitorProvider ds-cfg-enabled: true dn: cn=JVM Stack Trace,cn=Monitor Providers,cn=config objectClass: top objectClass: ds-cfg-monitor-provider objectClass: ds-cfg-stack-trace-monitor-provider cn: JVM Stack Trace ds-cfg-java-class: org.opends.server.monitors.StackTraceMonitorProvider ds-cfg-enabled: true dn: cn=System Info,cn=Monitor Providers,cn=config objectClass: top objectClass: ds-cfg-monitor-provider objectClass: ds-cfg-system-info-monitor-provider cn: System Info ds-cfg-java-class: org.opends.server.monitors.SystemInfoMonitorProvider ds-cfg-enabled: true dn: cn=Version,cn=Monitor Providers,cn=config objectClass: top objectClass: ds-cfg-monitor-provider objectClass: ds-cfg-version-monitor-provider cn: Version ds-cfg-java-class: org.opends.server.monitors.VersionMonitorProvider ds-cfg-enabled: true dn: cn=Password Generators,cn=config objectClass: top objectClass: ds-cfg-branch cn: Password Generators dn: cn=Random Password Generator,cn=Password Generators,cn=config objectClass: top objectClass: ds-cfg-password-generator objectClass: ds-cfg-random-password-generator cn: Random Password Generator ds-cfg-java-class: org.opends.server.extensions.RandomPasswordGenerator ds-cfg-enabled: true ds-cfg-password-character-set: alpha:abcdefghijklmnopqrstuvwxyz ds-cfg-password-character-set: numeric:0123456789 ds-cfg-password-format: alpha:3,numeric:2,alpha:3 dn: cn=Password Policies,cn=config objectClass: top objectClass: ds-cfg-branch cn: Password Policies dn: cn=Default Password Policy,cn=Password Policies,cn=config objectClass: top objectClass: ds-cfg-authentication-policy objectClass: ds-cfg-password-policy ds-cfg-java-class: org.opends.server.core.PasswordPolicyFactory cn: Default Password Policy ds-cfg-password-attribute: userPassword ds-cfg-default-password-storage-scheme: cn=Salted SHA-1,cn=Password Storage Schemes,cn=config ds-cfg-allow-expired-password-changes: false ds-cfg-allow-multiple-password-values: false ds-cfg-allow-pre-encoded-passwords: false ds-cfg-allow-user-password-changes: true ds-cfg-expire-passwords-without-warning: false ds-cfg-force-change-on-add: false ds-cfg-force-change-on-reset: false ds-cfg-grace-login-count: 0 ds-cfg-idle-lockout-interval: 0 seconds ds-cfg-lockout-failure-count: 0 ds-cfg-lockout-duration: 0 seconds ds-cfg-lockout-failure-expiration-interval: 0 seconds ds-cfg-min-password-age: 0 seconds ds-cfg-max-password-age: 0 seconds ds-cfg-max-password-reset-age: 0 seconds ds-cfg-password-expiration-warning-interval: 5 days ds-cfg-password-generator: cn=Random Password Generator,cn=Password Generators,cn=config ds-cfg-password-change-requires-current-password: false ds-cfg-require-secure-authentication: false ds-cfg-require-secure-password-changes: false ds-cfg-skip-validation-for-administrators: false ds-cfg-state-update-failure-policy: reactive ds-cfg-password-history-count: 0 ds-cfg-password-history-duration: 0 seconds dn: cn=Root Password Policy,cn=Password Policies,cn=config objectClass: top objectClass: ds-cfg-authentication-policy objectClass: ds-cfg-password-policy ds-cfg-java-class: org.opends.server.core.PasswordPolicyFactory cn: Root Password Policy ds-cfg-password-attribute: userPassword ds-cfg-default-password-storage-scheme: cn=Salted SHA-512,cn=Password Storage Schemes,cn=config ds-cfg-allow-expired-password-changes: false ds-cfg-allow-multiple-password-values: false ds-cfg-allow-pre-encoded-passwords: false ds-cfg-allow-user-password-changes: true ds-cfg-expire-passwords-without-warning: false ds-cfg-force-change-on-add: false ds-cfg-force-change-on-reset: false ds-cfg-grace-login-count: 0 ds-cfg-idle-lockout-interval: 0 seconds ds-cfg-lockout-failure-count: 0 ds-cfg-lockout-duration: 0 seconds ds-cfg-lockout-failure-expiration-interval: 0 seconds ds-cfg-min-password-age: 0 seconds ds-cfg-max-password-age: 0 seconds ds-cfg-max-password-reset-age: 0 seconds ds-cfg-password-expiration-warning-interval: 5 days ds-cfg-password-change-requires-current-password: true ds-cfg-require-secure-authentication: false ds-cfg-require-secure-password-changes: false ds-cfg-skip-validation-for-administrators: false ds-cfg-state-update-failure-policy: ignore ds-cfg-password-history-count: 0 ds-cfg-password-history-duration: 0 seconds dn: cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-branch cn: Password Storage Schemes dn: cn=Base64,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-base64-password-storage-scheme cn: Base64 ds-cfg-java-class: org.opends.server.extensions.Base64PasswordStorageScheme ds-cfg-enabled: true dn: cn=Clear,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-clear-password-storage-scheme cn: Clear ds-cfg-java-class: org.opends.server.extensions.ClearPasswordStorageScheme ds-cfg-enabled: true dn: cn=CRYPT,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-crypt-password-storage-scheme cn: CRYPT ds-cfg-java-class: org.opends.server.extensions.CryptPasswordStorageScheme ds-cfg-enabled: true ds-cfg-crypt-password-storage-encryption-algorithm: unix dn: cn=MD5,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-md5-password-storage-scheme cn: MD5 ds-cfg-java-class: org.opends.server.extensions.MD5PasswordStorageScheme ds-cfg-enabled: true dn: cn=Salted MD5,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-salted-md5-password-storage-scheme cn: Salted MD5 ds-cfg-java-class: org.opends.server.extensions.SaltedMD5PasswordStorageScheme ds-cfg-enabled: true dn: cn=Salted SHA-1,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-salted-sha1-password-storage-scheme cn: Salted SHA-1 ds-cfg-java-class: org.opends.server.extensions.SaltedSHA1PasswordStorageScheme ds-cfg-enabled: true dn: cn=Salted SHA-256,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-salted-sha256-password-storage-scheme cn: Salted SHA-256 ds-cfg-java-class: org.opends.server.extensions.SaltedSHA256PasswordStorageScheme ds-cfg-enabled: true dn: cn=Salted SHA-384,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-salted-sha384-password-storage-scheme cn: Salted SHA-384 ds-cfg-java-class: org.opends.server.extensions.SaltedSHA384PasswordStorageScheme ds-cfg-enabled: true dn: cn=Salted SHA-512,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-salted-sha512-password-storage-scheme cn: Salted SHA-512 ds-cfg-java-class: org.opends.server.extensions.SaltedSHA512PasswordStorageScheme ds-cfg-enabled: true dn: cn=PBKDF2,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-pbkdf2-password-storage-scheme cn: PBKDF2 ds-cfg-java-class: org.opends.server.extensions.PBKDF2PasswordStorageScheme ds-cfg-enabled: true dn: cn=SHA-1,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-sha1-password-storage-scheme cn: SHA-1 ds-cfg-java-class: org.opends.server.extensions.SHA1PasswordStorageScheme ds-cfg-enabled: true dn: cn=3DES,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-triple-des-password-storage-scheme cn: 3DES ds-cfg-java-class: org.opends.server.extensions.TripleDESPasswordStorageScheme ds-cfg-enabled: true dn: cn=AES,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-aes-password-storage-scheme cn: AES ds-cfg-java-class: org.opends.server.extensions.AESPasswordStorageScheme ds-cfg-enabled: true dn: cn=Blowfish,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-blowfish-password-storage-scheme cn: Blowfish ds-cfg-java-class: org.opends.server.extensions.BlowfishPasswordStorageScheme ds-cfg-enabled: true dn: cn=RC4,cn=Password Storage Schemes,cn=config objectClass: top objectClass: ds-cfg-password-storage-scheme objectClass: ds-cfg-rc4-password-storage-scheme cn: RC4 ds-cfg-java-class: org.opends.server.extensions.RC4PasswordStorageScheme ds-cfg-enabled: true dn: cn=Password Validators,cn=config objectClass: top objectClass: ds-cfg-branch cn: Password Validators dn: cn=Attribute Value,cn=Password Validators,cn=config objectClass: top objectClass: ds-cfg-password-validator objectClass: ds-cfg-attribute-value-password-validator cn: Attribute Value ds-cfg-java-class: org.opends.server.extensions.AttributeValuePasswordValidator ds-cfg-enabled: true ds-cfg-test-reversed-password: true ds-cfg-check-substrings: true dn: cn=Character Set,cn=Password Validators,cn=config objectClass: top objectClass: ds-cfg-password-validator objectClass: ds-cfg-character-set-password-validator cn: Character Set ds-cfg-java-class: org.opends.server.extensions.CharacterSetPasswordValidator ds-cfg-enabled: true ds-cfg-character-set: 1:abcdefghijklmnopqrstuvwxyz ds-cfg-character-set: 1:ABCDEFGHIJKLMNOPQRSTUVWXYZ ds-cfg-character-set: 1:0123456789 ds-cfg-character-set: 1:~!@#$%^&*()-_=+[]{}|;:,.<>/? ds-cfg-allow-unclassified-characters: true dn: cn=Dictionary,cn=Password Validators,cn=config objectClass: top objectClass: ds-cfg-password-validator objectClass: ds-cfg-dictionary-password-validator cn: Dictionary ds-cfg-java-class: org.opends.server.extensions.DictionaryPasswordValidator ds-cfg-enabled: false ds-cfg-dictionary-file: config/wordlist.txt ds-cfg-case-sensitive-validation: false ds-cfg-test-reversed-password: true ds-cfg-check-substrings: true dn: cn=Length-Based Password Validator,cn=Password Validators,cn=config objectClass: top objectClass: ds-cfg-password-validator objectClass: ds-cfg-length-based-password-validator cn: Length-Based Password Validator ds-cfg-java-class: org.opends.server.extensions.LengthBasedPasswordValidator ds-cfg-enabled: true ds-cfg-min-password-length: 6 ds-cfg-max-password-length: 0 dn: cn=Repeated Characters,cn=Password Validators,cn=config objectClass: top objectClass: ds-cfg-password-validator objectClass: ds-cfg-repeated-characters-password-validator cn: Repeated Characters ds-cfg-java-class: org.opends.server.extensions.RepeatedCharactersPasswordValidator ds-cfg-enabled: true ds-cfg-max-consecutive-length: 2 ds-cfg-case-sensitive-validation: false dn: cn=Similarity-Based Password Validator,cn=Password Validators,cn=config objectClass: top objectClass: ds-cfg-password-validator objectClass: ds-cfg-similarity-based-password-validator cn: Similarity-Based Password Validator ds-cfg-java-class: org.opends.server.extensions.SimilarityBasedPasswordValidator ds-cfg-enabled: true ds-cfg-min-password-difference: 3 dn: cn=Unique Characters,cn=Password Validators,cn=config objectClass: top objectClass: ds-cfg-password-validator objectClass: ds-cfg-unique-characters-password-validator cn: Unique Characters ds-cfg-java-class: org.opends.server.extensions.UniqueCharactersPasswordValidator ds-cfg-enabled: true ds-cfg-min-unique-characters: 5 ds-cfg-case-sensitive-validation: false dn: cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-branch objectClass: ds-cfg-plugin-root cn: Plugins dn: cn=7-Bit Clean,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-seven-bit-clean-plugin cn: 7-Bit Clean ds-cfg-java-class: org.opends.server.plugins.SevenBitCleanPlugin ds-cfg-enabled: false ds-cfg-plugin-type: ldifImport ds-cfg-plugin-type: preParseAdd ds-cfg-plugin-type: preParseModify ds-cfg-plugin-type: preParseModifyDN ds-cfg-attribute-type: uid ds-cfg-attribute-type: mail ds-cfg-attribute-type: userPassword ds-cfg-invoke-for-internal-operations: true dn: cn=Entry UUID,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-entry-uuid-plugin cn: Entry UUID ds-cfg-java-class: org.opends.server.plugins.EntryUUIDPlugin ds-cfg-enabled: true ds-cfg-plugin-type: ldifImport ds-cfg-plugin-type: preOperationAdd ds-cfg-invoke-for-internal-operations: true dn: cn=LastMod,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-last-mod-plugin cn: LastMod ds-cfg-java-class: org.opends.server.plugins.LastModPlugin ds-cfg-enabled: true ds-cfg-plugin-type: preOperationAdd ds-cfg-plugin-type: preOperationModify ds-cfg-plugin-type: preOperationModifyDN ds-cfg-invoke-for-internal-operations: true dn: cn=LDAP Attribute Description List,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-ldap-attribute-description-list-plugin cn: LDAP Attribute Description List ds-cfg-java-class: org.opends.server.plugins.LDAPADListPlugin ds-cfg-enabled: true ds-cfg-plugin-type: preParseSearch ds-cfg-invoke-for-internal-operations: true dn: cn=Password Policy Import,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-password-policy-import-plugin cn: Password Policy Import ds-cfg-java-class: org.opends.server.plugins.PasswordPolicyImportPlugin ds-cfg-enabled: true ds-cfg-plugin-type: ldifImport ds-cfg-default-user-password-storage-scheme: cn=Salted SHA-1,cn=Password Storage Schemes,cn=config ds-cfg-default-auth-password-storage-scheme: cn=Salted SHA-1,cn=Password Storage Schemes,cn=config ds-cfg-invoke-for-internal-operations: false dn: cn=Profiler,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-profiler-plugin cn: Profiler ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.plugins.profiler.ProfilerPlugin ds-cfg-plugin-type: startup ds-cfg-enable-profiling-on-startup: false ds-cfg-profile-directory: logs ds-cfg-profile-sample-interval: 10 milliseconds ds-cfg-invoke-for-internal-operations: false dn: cn=Referential Integrity,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-referential-integrity-plugin cn: Referential Integrity ds-cfg-java-class: org.opends.server.plugins.ReferentialIntegrityPlugin ds-cfg-enabled: false ds-cfg-plugin-type: postOperationDelete ds-cfg-plugin-type: postOperationModifyDN ds-cfg-plugin-type: subordinateModifyDN ds-cfg-plugin-type: subordinateDelete ds-cfg-attribute-type: member ds-cfg-attribute-type: uniqueMember ds-cfg-invoke-for-internal-operations: true dn: cn=UID Unique Attribute,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-unique-attribute-plugin cn: UID Unique Attribute ds-cfg-java-class: org.opends.server.plugins.UniqueAttributePlugin ds-cfg-enabled: false ds-cfg-plugin-type: preOperationAdd ds-cfg-plugin-type: preOperationModify ds-cfg-plugin-type: preOperationModifyDN ds-cfg-plugin-type: postOperationAdd ds-cfg-plugin-type: postOperationModify ds-cfg-plugin-type: postOperationModifyDN ds-cfg-plugin-type: postSynchronizationAdd ds-cfg-plugin-type: postSynchronizationModify ds-cfg-plugin-type: postSynchronizationModifyDN ds-cfg-type: uid ds-cfg-invoke-for-internal-operations: true dn: cn=Network Group,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-network-group-plugin cn: Network Group ds-cfg-java-class: org.opends.server.core.networkgroups.NetworkGroupPlugin ds-cfg-enabled: true ds-cfg-invoke-for-internal-operations: false ds-cfg-plugin-type: postConnect ds-cfg-plugin-type: preParseAdd ds-cfg-plugin-type: preParseBind ds-cfg-plugin-type: preParseCompare ds-cfg-plugin-type: preParseDelete ds-cfg-plugin-type: preParseExtended ds-cfg-plugin-type: preParseModify ds-cfg-plugin-type: preParseModifyDn ds-cfg-plugin-type: preParseSearch ds-cfg-plugin-type: preParseUnbind ds-cfg-plugin-type: postResponseBind ds-cfg-plugin-type: postResponseExtended dn: cn=Change Number Control,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-change-number-control-plugin cn: Change Number Control ds-cfg-enabled: true ds-cfg-plugin-type: postOperationAdd ds-cfg-plugin-type: postOperationDelete ds-cfg-plugin-type: postOperationModify ds-cfg-plugin-type: postOperationModifyDn ds-cfg-java-class: org.opends.server.plugins.ChangeNumberControlPlugin dn: cn=Fractional Replication LDIF Import,cn=Plugins,cn=config objectClass: top objectClass: ds-cfg-plugin objectClass: ds-cfg-fractional-ldif-import-plugin cn: Fractional Replication LDIF Import ds-cfg-java-class: org.opends.server.replication.plugin.FractionalLDIFImportPlugin ds-cfg-enabled: true ds-cfg-plugin-type: ldifImport ds-cfg-plugin-type: ldifImportEnd ds-cfg-invoke-for-internal-operations: true dn: cn=Root DNs,cn=config objectClass: top objectClass: ds-cfg-root-dn cn: Root DNs ds-cfg-default-root-privilege-name: bypass-lockdown ds-cfg-default-root-privilege-name: bypass-acl ds-cfg-default-root-privilege-name: modify-acl ds-cfg-default-root-privilege-name: config-read ds-cfg-default-root-privilege-name: config-write ds-cfg-default-root-privilege-name: ldif-import ds-cfg-default-root-privilege-name: ldif-export ds-cfg-default-root-privilege-name: backend-backup ds-cfg-default-root-privilege-name: backend-restore ds-cfg-default-root-privilege-name: server-lockdown ds-cfg-default-root-privilege-name: server-shutdown ds-cfg-default-root-privilege-name: server-restart ds-cfg-default-root-privilege-name: disconnect-client ds-cfg-default-root-privilege-name: cancel-request ds-cfg-default-root-privilege-name: password-reset ds-cfg-default-root-privilege-name: update-schema ds-cfg-default-root-privilege-name: privilege-change ds-cfg-default-root-privilege-name: unindexed-search ds-cfg-default-root-privilege-name: subentry-write dn: cn=Directory Manager,cn=Root DNs,cn=config objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: ds-cfg-root-dn-user cn: Directory Manager givenName: Directory sn: Manager userPassword: {SSHA512}l1t43vVl7Uh03PpQ2vCsT0B7Q0HTi+tKJmH7tZTmSGaKrMHWHO1czfwEsjMgfbeQoiYQDGDuxolipR0H6ajMu1YHlTjPNG9Z ds-cfg-alternate-bind-dn: cn=Directory Manager ds-rlim-size-limit: 0 ds-rlim-time-limit: 0 ds-rlim-idle-time-limit: 0 ds-rlim-lookthrough-limit: 0 ds-pwp-password-policy-dn: cn=Root Password Policy,cn=Password Policies,cn=config dn: cn=Root DSE,cn=config objectClass: top objectClass: ds-cfg-root-dse-backend cn: Root DSE ds-cfg-show-all-attributes: false dn: cn=SASL Mechanisms,cn=config objectClass: top objectClass: ds-cfg-branch cn: SASL Mechanisms dn: cn=ANONYMOUS,cn=SASL Mechanisms,cn=config objectClass: top objectClass: ds-cfg-sasl-mechanism-handler objectClass: ds-cfg-anonymous-sasl-mechanism-handler cn: ANONYMOUS ds-cfg-java-class: org.opends.server.extensions.AnonymousSASLMechanismHandler ds-cfg-enabled: false dn: cn=CRAM-MD5,cn=SASL Mechanisms,cn=config objectClass: top objectClass: ds-cfg-sasl-mechanism-handler objectClass: ds-cfg-cram-md5-sasl-mechanism-handler cn: CRAM-MD5 ds-cfg-java-class: org.opends.server.extensions.CRAMMD5SASLMechanismHandler ds-cfg-enabled: true ds-cfg-identity-mapper: cn=Exact Match,cn=Identity Mappers,cn=config dn: cn=DIGEST-MD5,cn=SASL Mechanisms,cn=config objectClass: top objectClass: ds-cfg-sasl-mechanism-handler objectClass: ds-cfg-digest-md5-sasl-mechanism-handler cn: DIGEST-MD5 ds-cfg-java-class: org.opends.server.extensions.DigestMD5SASLMechanismHandler ds-cfg-enabled: true ds-cfg-identity-mapper: cn=Exact Match,cn=Identity Mappers,cn=config dn: cn=EXTERNAL,cn=SASL Mechanisms,cn=config objectClass: top objectClass: ds-cfg-sasl-mechanism-handler objectClass: ds-cfg-external-sasl-mechanism-handler cn: EXTERNAL ds-cfg-java-class: org.opends.server.extensions.ExternalSASLMechanismHandler ds-cfg-enabled: true ds-cfg-certificate-validation-policy: ifpresent ds-cfg-certificate-attribute: userCertificate ds-cfg-certificate-mapper: cn=Subject Equals DN,cn=Certificate Mappers,cn=config dn: cn=GSSAPI,cn=SASL Mechanisms,cn=config objectClass: top objectClass: ds-cfg-sasl-mechanism-handler objectClass: ds-cfg-gssapi-sasl-mechanism-handler cn: GSSAPI ds-cfg-java-class: org.opends.server.extensions.GSSAPISASLMechanismHandler ds-cfg-enabled: false ds-cfg-identity-mapper: cn=Regular Expression,cn=Identity Mappers,cn=config ds-cfg-keytab: /etc/krb5/krb5.keytab dn: cn=PLAIN,cn=SASL Mechanisms,cn=config objectClass: top objectClass: ds-cfg-sasl-mechanism-handler objectClass: ds-cfg-plain-sasl-mechanism-handler cn: PLAIN ds-cfg-java-class: org.opends.server.extensions.PlainSASLMechanismHandler ds-cfg-enabled: true ds-cfg-identity-mapper: cn=Exact Match,cn=Identity Mappers,cn=config dn: cn=Synchronization Providers,cn=config objectClass: top objectClass: ds-cfg-branch cn: Synchronization Providers dn: cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config objectClass: top objectClass: ds-cfg-synchronization-provider objectClass: ds-cfg-replication-synchronization-provider cn: Multimaster Synchronization ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.replication.plugin.MultimasterReplication dn: cn=domains,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config objectClass: top objectClass: ds-cfg-branch cn: domains dn: cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-branch cn: Syntaxes dn: cn=Sun-defined Access Control Information,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Sun-defined Access Control Information ds-cfg-java-class: org.opends.server.schema.AciSyntax ds-cfg-enabled: true dn: cn=Attribute Type Description,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax objectClass: ds-cfg-attribute-type-description-attribute-syntax cn: Attribute Type Description ds-cfg-java-class: org.opends.server.schema.AttributeTypeSyntax ds-cfg-enabled: true ds-cfg-strip-syntax-min-upper-bound: false dn: cn=Authentication Password,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Authentiation Password ds-cfg-java-class: org.opends.server.schema.AuthPasswordSyntax ds-cfg-enabled: true dn: cn=Binary,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Binary ds-cfg-java-class: org.opends.server.schema.BinarySyntax ds-cfg-enabled: true dn: cn=Bit String,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Bit String ds-cfg-java-class: org.opends.server.schema.BitStringSyntax ds-cfg-enabled: true dn: cn=Boolean,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Boolean ds-cfg-java-class: org.opends.server.schema.BooleanSyntax ds-cfg-enabled: true dn: cn=Certificate,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax objectClass: ds-cfg-certificate-attribute-syntax cn: Certificate ds-cfg-java-class: org.opends.server.schema.CertificateSyntax ds-cfg-enabled: true ds-cfg-strict-format: true dn: cn=Certificate List,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Certificate List ds-cfg-java-class: org.opends.server.schema.CertificateListSyntax ds-cfg-enabled: true dn: cn=Certificate Pair,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Certificate Pair ds-cfg-java-class: org.opends.server.schema.CertificatePairSyntax ds-cfg-enabled: true dn: cn=Country String,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax objectClass: ds-cfg-country-string-attribute-syntax cn: Country String ds-cfg-java-class: org.opends.server.schema.CountryStringSyntax ds-cfg-enabled: true ds-cfg-strict-format: true dn: cn=Delivery Method,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Delivery Method ds-cfg-java-class: org.opends.server.schema.DeliveryMethodSyntax ds-cfg-enabled: true dn: cn=Directory String,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax objectClass: ds-cfg-directory-string-attribute-syntax cn: Directory String ds-cfg-java-class: org.opends.server.schema.DirectoryStringSyntax ds-cfg-enabled: true ds-cfg-allow-zero-length-values: false dn: cn=Distinguished Name,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Distinguished Name ds-cfg-java-class: org.opends.server.schema.DistinguishedNameSyntax ds-cfg-enabled: true dn: cn=DIT Content Rule Description,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: DIT Content Rule Description ds-cfg-java-class: org.opends.server.schema.DITContentRuleSyntax ds-cfg-enabled: true dn: cn=DIT Structure Rule Description,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: DIT Structure Rule Description ds-cfg-java-class: org.opends.server.schema.DITStructureRuleSyntax ds-cfg-enabled: true dn: cn=Enhanced Guide,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Enhanced Guide ds-cfg-java-class: org.opends.server.schema.EnhancedGuideSyntax ds-cfg-enabled: true dn: cn=Facsimile Telephone Number,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Facsimile Telephone Number ds-cfg-java-class: org.opends.server.schema.FaxNumberSyntax ds-cfg-enabled: true dn: cn=Fax,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Fax ds-cfg-java-class: org.opends.server.schema.FaxSyntax ds-cfg-enabled: true dn: cn=Generalized Time,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Generalized Time ds-cfg-java-class: org.opends.server.schema.GeneralizedTimeSyntax ds-cfg-enabled: true dn: cn=Guide,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Guide ds-cfg-java-class: org.opends.server.schema.GuideSyntax ds-cfg-enabled: true dn: cn=IA5 String,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: IA5 String ds-cfg-java-class: org.opends.server.schema.IA5StringSyntax ds-cfg-enabled: true dn: cn=Integer,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Integer ds-cfg-java-class: org.opends.server.schema.IntegerSyntax ds-cfg-enabled: true dn: cn=JPEG,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax objectClass: ds-cfg-jpeg-attribute-syntax cn: JPEG ds-cfg-java-class: org.opends.server.schema.JPEGSyntax ds-cfg-enabled: true ds-cfg-strict-format: false dn: cn=LDAP Syntax Description,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: LDAP Syntax Description ds-cfg-java-class: org.opends.server.schema.LDAPSyntaxDescriptionSyntax ds-cfg-enabled: true dn: cn=Matching Rule Description,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Matching Rule Description ds-cfg-java-class: org.opends.server.schema.MatchingRuleSyntax ds-cfg-enabled: true dn: cn=Matching Rule Use Description,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Matching Rule Use Description ds-cfg-java-class: org.opends.server.schema.MatchingRuleUseSyntax ds-cfg-enabled: true dn: cn=Name and Optional UID,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Name and Optional UID ds-cfg-java-class: org.opends.server.schema.NameAndOptionalUIDSyntax ds-cfg-enabled: true dn: cn=Name Form Description,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Name Form Description ds-cfg-java-class: org.opends.server.schema.NameFormSyntax ds-cfg-enabled: true dn: cn=Numeric String,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Numeric String ds-cfg-java-class: org.opends.server.schema.NumericStringSyntax ds-cfg-enabled: true dn: cn=Object Class Description,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Object Class Description ds-cfg-java-class: org.opends.server.schema.ObjectClassSyntax ds-cfg-enabled: true dn: cn=Object Identifier,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Object Identifier ds-cfg-java-class: org.opends.server.schema.OIDSyntax ds-cfg-enabled: true dn: cn=Octet String,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Octet String ds-cfg-java-class: org.opends.server.schema.OctetStringSyntax ds-cfg-enabled: true dn: cn=Other Mailbox,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Other Mailbox ds-cfg-java-class: org.opends.server.schema.OtherMailboxSyntax ds-cfg-enabled: true dn: cn=Postal Address,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Postal Address ds-cfg-java-class: org.opends.server.schema.PostalAddressSyntax ds-cfg-enabled: true dn: cn=Presentation Address,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Presentation Address ds-cfg-java-class: org.opends.server.schema.PresentationAddressSyntax ds-cfg-enabled: true dn: cn=Printable String,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Printable String ds-cfg-java-class: org.opends.server.schema.PrintableStringSyntax ds-cfg-enabled: true dn: cn=Protocol Information,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Protocol Information ds-cfg-java-class: org.opends.server.schema.ProtocolInformationSyntax ds-cfg-enabled: true dn: cn=Substring Assertion,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Substring Assertion ds-cfg-java-class: org.opends.server.schema.SubstringAssertionSyntax ds-cfg-enabled: true dn: cn=Subtree Specification,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Subtree Specification ds-cfg-java-class: org.opends.server.schema.SubtreeSpecificationSyntax ds-cfg-enabled: true dn: cn=Supported Algorithm,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Supported Algorithm ds-cfg-java-class: org.opends.server.schema.SupportedAlgorithmSyntax ds-cfg-enabled: true dn: cn=Telephone Number,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax objectClass: ds-cfg-telephone-number-attribute-syntax cn: Telephone Number ds-cfg-java-class: org.opends.server.schema.TelephoneNumberSyntax ds-cfg-enabled: true ds-cfg-strict-format: false dn: cn=Teletex Terminal Identifier,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Teletex Terminal Identifier ds-cfg-java-class: org.opends.server.schema.TeletexTerminalIdentifierSyntax ds-cfg-enabled: true dn: cn=Telex Number,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: Telex Number ds-cfg-java-class: org.opends.server.schema.TelexNumberSyntax ds-cfg-enabled: true dn: cn=UTC Time,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: UTC Time ds-cfg-java-class: org.opends.server.schema.UTCTimeSyntax ds-cfg-enabled: true dn: cn=User Password,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: User Password ds-cfg-java-class: org.opends.server.schema.UserPasswordSyntax ds-cfg-enabled: true dn: cn=UUID,cn=Syntaxes,cn=config objectClass: top objectClass: ds-cfg-attribute-syntax cn: UUID ds-cfg-java-class: org.opends.server.schema.UUIDSyntax ds-cfg-enabled: true dn: cn=Trust Manager Providers,cn=config objectClass: top objectClass: ds-cfg-branch cn: Trust Manager Providers dn: cn=Blind Trust,cn=Trust Manager Providers,cn=config objectClass: top objectClass: ds-cfg-trust-manager-provider objectClass: ds-cfg-blind-trust-manager-provider cn: Blind Trust ds-cfg-java-class: org.opends.server.extensions.BlindTrustManagerProvider ds-cfg-enabled: false dn: cn=JKS,cn=Trust Manager Providers,cn=config objectClass: top objectClass: ds-cfg-trust-manager-provider objectClass: ds-cfg-file-based-trust-manager-provider cn: JKS ds-cfg-java-class: org.opends.server.extensions.FileBasedTrustManagerProvider ds-cfg-enabled: false ds-cfg-trust-store-type: JKS ds-cfg-trust-store-file: config/truststore dn: cn=PKCS12,cn=Trust Manager Providers,cn=config objectClass: top objectClass: ds-cfg-trust-manager-provider objectClass: ds-cfg-file-based-trust-manager-provider cn: PKCS12 ds-cfg-java-class: org.opends.server.extensions.FileBasedTrustManagerProvider ds-cfg-enabled: false ds-cfg-trust-store-type: PKCS12 ds-cfg-trust-store-file: config/truststore.p12 dn: cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-branch cn: Virtual Attributes dn: cn=entryDN,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-entry-dn-virtual-attribute cn: entryDN ds-cfg-java-class: org.opends.server.extensions.EntryDNVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: entryDN ds-cfg-conflict-behavior: virtual-overrides-real dn: cn=entryUUID,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-entry-uuid-virtual-attribute cn: entryUUID ds-cfg-java-class: org.opends.server.extensions.EntryUUIDVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: entryUUID ds-cfg-conflict-behavior: real-overrides-virtual dn: cn=hasSubordinates,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-has-subordinates-virtual-attribute cn: hasSubordinates ds-cfg-java-class: org.opends.server.extensions.HasSubordinatesVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: hasSubordinates ds-cfg-conflict-behavior: virtual-overrides-real dn: cn=isMemberOf,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-is-member-of-virtual-attribute cn: isMemberOf ds-cfg-java-class: org.opends.server.extensions.IsMemberOfVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: isMemberOf ds-cfg-filter: (|(objectClass=person)(objectClass=groupOfNames)(objectClass=groupOfUniqueNames)(objectClass=groupOfEntries)) ds-cfg-conflict-behavior: virtual-overrides-real dn: cn=numSubordinates,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-num-subordinates-virtual-attribute cn: numSubordinates ds-cfg-java-class: org.opends.server.extensions.NumSubordinatesVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: numSubordinates ds-cfg-conflict-behavior: virtual-overrides-real dn: cn=subschemaSubentry,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-subschema-subentry-virtual-attribute cn: subschemaSubentry ds-cfg-java-class: org.opends.server.extensions.SubschemaSubentryVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: subschemaSubentry ds-cfg-conflict-behavior: virtual-overrides-real dn: cn=structuralObjectClass,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-structural-object-class-virtual-attribute cn: structuralObjectClass ds-cfg-java-class: org.opends.server.extensions.StructuralObjectClassVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: structuralObjectClass ds-cfg-conflict-behavior: virtual-overrides-real dn: cn=governingStructureRule,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-governing-structure-rule-virtual-attribute cn: governingStructureRule ds-cfg-java-class: org.opends.server.extensions.GoverningStructureRuleVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: governingStructureRule ds-cfg-conflict-behavior: virtual-overrides-real dn: cn=Virtual Static member,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-member-virtual-attribute cn: Virtual Static member ds-cfg-java-class: org.opends.server.extensions.MemberVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: member ds-cfg-conflict-behavior: virtual-overrides-real ds-cfg-filter: (&(objectClass=groupOfNames)(objectClass=ds-virtual-static-group)) ds-cfg-allow-retrieving-membership: false dn: cn=Virtual Static uniqueMember,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-member-virtual-attribute cn: Virtual Static uniqueMember ds-cfg-java-class: org.opends.server.extensions.MemberVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: uniqueMember ds-cfg-conflict-behavior: virtual-overrides-real ds-cfg-filter: (&(objectClass=groupOfUniqueNames)(objectClass=ds-virtual-static-group)) ds-cfg-allow-retrieving-membership: false dn: cn=Collective Attribute Subentries,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-collective-attribute-subentries-virtual-attribute cn: Collective Attribute Subentries ds-cfg-java-class: org.opends.server.extensions.CollectiveAttributeSubentriesVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: collectiveAttributeSubentries ds-cfg-conflict-behavior: virtual-overrides-real dn: cn=Password Policy Subentry,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-password-policy-subentry-virtual-attribute cn: Password Policy Subentry ds-cfg-java-class: org.opends.server.extensions.PasswordPolicySubentryVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: pwdPolicySubentry ds-cfg-conflict-behavior: virtual-overrides-real dn: cn=etag,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-entity-tag-virtual-attribute cn: etag ds-cfg-java-class: org.opends.server.extensions.EntityTagVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: etag ds-cfg-conflict-behavior: real-overrides-virtual ds-cfg-checksum-algorithm: adler-32 ds-cfg-excluded-attribute: ds-sync-hist dn: cn=Password Expiration Time,cn=Virtual Attributes,cn=config objectClass: top objectClass: ds-cfg-virtual-attribute objectClass: ds-cfg-password-expiration-time-virtual-attribute cn: Password Expiration Time ds-cfg-java-class: org.opends.server.extensions.PasswordExpirationTimeVirtualAttributeProvider ds-cfg-enabled: true ds-cfg-attribute-type: ds-pwp-password-expiration-time ds-cfg-conflict-behavior: virtual-overrides-real dn: cn=Work Queue,cn=config objectClass: top objectClass: ds-cfg-work-queue objectClass: ds-cfg-traditional-work-queue cn: Work Queue ds-cfg-java-class: org.opends.server.extensions.TraditionalWorkQueue ds-cfg-max-work-queue-capacity: 1000 dn: cn=Administration Connector,cn=config objectClass: top objectClass: ds-cfg-administration-connector cn: Administration Connector ds-cfg-listen-address: 0.0.0.0 ds-cfg-listen-port: 4444 ds-cfg-ssl-cert-nickname: admin-cert ds-cfg-key-manager-provider: cn=Administration,cn=Key Manager Providers,cn=config ds-cfg-trust-manager-provider: cn=Administration,cn=Trust Manager Providers,cn=config dn: cn=Administration,cn=Key Manager Providers,cn=config objectClass: top objectClass: ds-cfg-key-manager-provider objectClass: ds-cfg-file-based-key-manager-provider cn: Administration ds-cfg-java-class: org.opends.server.extensions.FileBasedKeyManagerProvider ds-cfg-enabled: true ds-cfg-key-store-type: JKS ds-cfg-key-store-file: config/admin-keystore ds-cfg-key-store-pin-file: config/admin-keystore.pin dn: cn=Administration,cn=Trust Manager Providers,cn=config objectClass: top objectClass: ds-cfg-trust-manager-provider objectClass: ds-cfg-file-based-trust-manager-provider cn: Administration ds-cfg-java-class: org.opends.server.extensions.FileBasedTrustManagerProvider ds-cfg-enabled: true ds-cfg-trust-store-type: JKS ds-cfg-trust-store-file: config/admin-truststore dn: cn=Extensions,cn=config objectClass: top objectClass: ds-cfg-branch cn: Extensions dn: cn=Network Groups,cn=config objectClass: top objectClass: ds-cfg-branch cn: Network Groups dn: cn=Workflows,cn=config objectClass: top objectClass: ds-cfg-branch cn: Workflows dn: cn=Workflow Elements,cn=config objectClass: top objectClass: ds-cfg-branch cn: Workflow Elements opendj-server3x-adapter/src/test/resources/config/config.properties
New file @@ -0,0 +1,4 @@ #This file define ports used by tests and defined by the maven plug-in reserve-network-port. listen-port=${listen-port} ldaps-listen-port=${ldaps-listen-port} admin-listen-port=${admin-listen-port} opendj-server3x-adapter/src/test/resources/config/schema/00-core.ldif
New file @@ -0,0 +1,743 @@ # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License, Version 1.0 only # (the "License"). You may not use this file except in compliance # with the License. # # You can obtain a copy of the license at legal-notices/CDDLv1_0.txt # or http://forgerock.org/license/CDDLv1.0.html. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at legal-notices/CDDLv1_0.txt. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: # Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2006-2010 Sun Microsystems, Inc. # Portions Copyright 2011-2012 ForgeRock AS # Portions Copyright 2013-2014 Manuel Gaupp # # # This file contains a core set of attribute type and objectlass definitions # from several standard LDAP documents (primarily RFCs and IETF Internet # Drafts). The X-ORIGIN component of each name should provide the # specification in which that attribute type or objectclass is defined. dn: cn=schema objectClass: top objectClass: ldapSubentry objectClass: subschema ldapSyntaxes: ( 1.3.6.1.4.1.26027.1.3.6 DESC 'Collective Conflict Behavior' X-ENUM ( 'real-overrides-virtual' 'virtual-overrides-real' 'merge-real-and-virtual' ) ) attributeTypes: ( 2.5.4.41 NAME 'name' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.49 NAME 'distinguishedName' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.0 NAME 'objectClass' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.4.1 NAME 'aliasedObjectName' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.4.2 NAME 'knowledgeInformation' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} X-ORIGIN 'RFC 2256' ) attributeTypes: ( 2.5.4.3 NAME ( 'cn' 'commonName' ) SUP name X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.4 NAME ( 'sn' 'surname' ) SUP name X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.5 NAME 'serialNumber' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{64} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.6 NAME ( 'c' 'countryName' ) SUP name SYNTAX 1.3.6.1.4.1.1466.115.121.1.11 SINGLE-VALUE X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.7 NAME ( 'l' 'localityName' ) SUP name X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.8 NAME ( 'st' 'stateOrProvinceName' ) SUP name X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.9 NAME ( 'street' 'streetAddress' ) EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.10 NAME ( 'o' 'organizationName' ) SUP name X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.11 NAME ( 'ou' 'organizationalUnitName' ) SUP name X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.12 NAME 'title' SUP name X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.13 NAME 'description' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.14 NAME 'searchGuide' SYNTAX 1.3.6.1.4.1.1466.115.121.1.25 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.15 NAME 'businessCategory' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.16 NAME 'postalAddress' EQUALITY caseIgnoreListMatch SUBSTR caseIgnoreListSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.17 NAME 'postalCode' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{40} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.18 NAME 'postOfficeBox' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{40} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.19 NAME 'physicalDeliveryOfficeName' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.20 NAME 'telephoneNumber' EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.21 NAME 'telexNumber' SYNTAX 1.3.6.1.4.1.1466.115.121.1.52 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.22 NAME 'teletexTerminalIdentifier' SYNTAX 1.3.6.1.4.1.1466.115.121.1.51 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.23 NAME 'facsimileTelephoneNumber' SYNTAX 1.3.6.1.4.1.1466.115.121.1.22 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.24 NAME 'x121Address' EQUALITY numericStringMatch SUBSTR numericStringSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{15} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.25 NAME 'internationaliSDNNumber' EQUALITY numericStringMatch SUBSTR numericStringSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{16} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.26 NAME 'registeredAddress' SUP postalAddress SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.27 NAME 'destinationIndicator' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{128} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.28 NAME 'preferredDeliveryMethod' SYNTAX 1.3.6.1.4.1.1466.115.121.1.14 SINGLE-VALUE X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.29 NAME 'presentationAddress' EQUALITY presentationAddressMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.43 SINGLE-VALUE X-ORIGIN 'RFC 2256' ) attributeTypes: ( 2.5.4.30 NAME 'supportedApplicationContext' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 X-ORIGIN 'RFC 2256' ) attributeTypes: ( 2.5.4.31 NAME 'member' SUP distinguishedName X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.32 NAME 'owner' SUP distinguishedName X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.33 NAME 'roleOccupant' SUP distinguishedName X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.34 NAME 'seeAlso' SUP distinguishedName X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.35 NAME 'userPassword' SYNTAX 1.3.6.1.4.1.26027.1.3.1 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.36 NAME 'userCertificate' EQUALITY certificateExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 X-ORIGIN 'RFC 4523' ) attributeTypes: ( 2.5.4.37 NAME 'cACertificate' EQUALITY certificateExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 X-ORIGIN 'RFC 4523' ) attributeTypes: ( 2.5.4.38 NAME 'authorityRevocationList' SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 X-ORIGIN 'RFC 4523' ) attributeTypes: ( 2.5.4.39 NAME 'certificateRevocationList' SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 X-ORIGIN 'RFC 4523' ) attributeTypes: ( 2.5.4.40 NAME 'crossCertificatePair' SYNTAX 1.3.6.1.4.1.1466.115.121.1.10 X-ORIGIN 'RFC 4523' ) attributeTypes: ( 2.5.4.42 NAME 'givenName' SUP name X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.43 NAME 'initials' SUP name X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.44 NAME 'generationQualifier' SUP name X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.45 NAME 'x500UniqueIdentifier' EQUALITY bitStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.6 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.46 NAME 'dnQualifier' EQUALITY caseIgnoreMatch ORDERING caseIgnoreOrderingMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.47 NAME 'enhancedSearchGuide' SYNTAX 1.3.6.1.4.1.1466.115.121.1.21 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 1.3.6.1.1.16.4 NAME 'entryUUID' DESC 'UUID of the entry' EQUALITY uuidMatch ORDERING uuidOrderingMatch SYNTAX 1.3.6.1.1.16.1 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'RFC 4530' ) attributeTypes: ( 2.5.4.48 NAME 'protocolInformation' EQUALITY protocolInformationMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.42 X-ORIGIN 'RFC 2256' ) attributeTypes: ( 2.5.4.50 NAME 'uniqueMember' EQUALITY uniqueMemberMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.34 X-ORIGIN 'RFC 4519' ) attributeTypes: ( 1.3.6.1.4.1.26027.1.1.585 NAME 'lastExternalChangelogCookie' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE USAGE directoryOperation X-ORIGIN 'OpenDS Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.26027.1.1.593 NAME 'firstChangeNumber' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE USAGE directoryOperation X-ORIGIN 'OpenDS Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.26027.1.1.594 NAME 'lastChangeNumber' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE USAGE directoryOperation X-ORIGIN 'OpenDS Directory Server' ) attributeTypes: ( 2.5.4.51 NAME 'houseIdentifier' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.5.4.52 NAME 'supportedAlgorithms' SYNTAX 1.3.6.1.4.1.1466.115.121.1.49 X-ORIGIN 'RFC 4523' ) attributeTypes: ( 2.5.4.53 NAME 'deltaRevocationList' SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 X-ORIGIN 'RFC 4523' ) attributeTypes: ( 2.5.4.54 NAME 'dmdName' SUP name X-ORIGIN 'RFC 2256' ) attributeTypes: ( 2.5.18.1 NAME 'createTimestamp' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.18.2 NAME 'modifyTimestamp' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.18.3 NAME 'creatorsName' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.18.4 NAME 'modifiersName' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.18.9 NAME 'hasSubordinates' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'X.501' ) attributeTypes: ( 2.5.18.10 NAME 'subschemaSubentry' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.21.5 NAME 'attributeTypes' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.3 USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.21.6 NAME 'objectClasses' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.37 USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.21.4 NAME 'matchingRules' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.30 USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.21.8 NAME 'matchingRuleUse' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.31 USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.21.9 NAME 'structuralObjectClass' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.21.10 NAME 'governingStructureRule' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 1.3.6.1.4.1.1466.101.120.5 NAME 'namingContexts' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 USAGE dSAOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 1.3.6.1.4.1.1466.101.120.6 NAME 'altServer' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 USAGE dSAOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 1.3.6.1.4.1.1466.101.120.7 NAME 'supportedExtension' SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 1.3.6.1.4.1.1466.101.120.13 NAME 'supportedControl' SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 1.3.6.1.4.1.1466.101.120.14 NAME 'supportedSASLMechanisms' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE dSAOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 1.3.6.1.4.1.1466.101.120.15 NAME 'supportedLDAPVersion' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 USAGE dSAOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 1.3.6.1.4.1.4203.1.3.5 NAME 'supportedFeatures' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 1.3.6.1.4.1.1466.101.120.16 NAME 'ldapSyntaxes' SYNTAX 1.3.6.1.4.1.1466.115.121.1.54 USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.21.1 NAME 'dITStructureRules' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.17 USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.21.7 NAME 'nameForms' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.35 USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 2.5.21.2 NAME 'dITContentRules' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.16 USAGE directoryOperation X-ORIGIN 'RFC 4512' ) attributeTypes: ( 0.9.2342.19200300.100.1.25 NAME ( 'dc' 'domainComponent' ) EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE X-ORIGIN 'RFC 4519' ) attributeTypes: ( 2.16.840.1.113730.3.1.1 NAME 'carLicense' DESC 'vehicle license or registration plate' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 2798' ) attributeTypes: ( 2.16.840.1.113730.3.1.2 NAME 'departmentNumber' DESC 'identifies a department within an organization' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 2798' ) attributeTypes: ( 2.16.840.1.113730.3.1.241 NAME 'displayName' DESC 'preferred name of a person to be used when displaying entries' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'RFC 2798' ) attributeTypes: ( 2.16.840.1.113730.3.1.3 NAME 'employeeNumber' DESC 'numerically identifies an employee within an organization' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'RFC 2798' ) attributeTypes: ( 2.16.840.1.113730.3.1.4 NAME 'employeeType' DESC 'type of employment for a person' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 2798' ) attributeTypes: ( 0.9.2342.19200300.100.1.60 NAME 'jpegPhoto' DESC 'a JPEG image' SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 X-ORIGIN 'RFC 2798' ) attributeTypes: ( 2.16.840.1.113730.3.1.39 NAME 'preferredLanguage' DESC 'preferred written or spoken language for a person' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'RFC 2798' ) attributeTypes: ( 2.16.840.1.113730.3.1.40 NAME 'userSMIMECertificate' DESC 'PKCS#7 SignedData used to support S/MIME' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 X-ORIGIN 'RFC 2798' ) attributeTypes: ( 2.16.840.1.113730.3.1.216 NAME 'userPKCS12' DESC 'PKCS #12 PFX PDU for exchange of personal identity information' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 X-ORIGIN 'RFC 2798' ) attributeTypes: ( 0.9.2342.19200300.100.1.37 NAME 'associatedDomain' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.38 NAME 'associatedName' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.48 NAME 'buildingName' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.43 NAME ( 'co' 'friendlyCountryName' ) EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.14 NAME 'documentAuthor' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.11 NAME 'documentIdentifier' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.15 NAME 'documentLocation' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.56 NAME 'documentPublisher' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.12 NAME 'documentTitle' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.13 NAME 'documentVersion' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.5 NAME ( 'drink' 'favouriteDrink' ) EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.20 NAME ( 'homePhone' 'homeTelephoneNumber' ) EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.39 NAME 'homePostalAddress' EQUALITY caseIgnoreListMatch SUBSTR caseIgnoreListSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.9 NAME 'host' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.4 NAME 'info' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{2048} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.3 NAME ( 'mail' 'rfc822Mailbox' ) EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.10 NAME 'manager' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.41 NAME ( 'mobile' 'mobileTelephoneNumber' ) EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.45 NAME 'organizationalStatus' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.42 NAME ( 'pager' 'pagerTelephoneNumber' ) EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.40 NAME 'personalTitle' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.6 NAME 'roomNumber' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.21 NAME 'secretary' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.44 NAME 'uniqueIdentifier' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 0.9.2342.19200300.100.1.8 NAME 'userClass' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4524' ) attributeTypes: ( 1.3.6.1.4.1.250.1.57 NAME 'labeledURI' DESC 'Uniform Resource Identifier with optional label' EQUALITY caseExactMatch SUBSTR caseExactSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 2079' ) attributeTypes: ( 1.3.6.1.4.1.250.1.41 NAME 'labeledURL' DESC 'Uniform Resource Locator with optional label' EQUALITY caseExactMatch SUBSTR caseExactSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 2079' ) attributeTypes: ( 0.9.2342.19200300.100.1.55 NAME 'audio' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{250000} X-ORIGIN 'RFC 2798' ) attributeTypes: ( 0.9.2342.19200300.100.1.7 NAME 'photo' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 X-ORIGIN 'RFC 2798' ) attributeTypes: ( 0.9.2342.19200300.100.1.1 NAME ( 'uid' 'userid' ) EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} X-ORIGIN 'RFC 4519' ) attributeTypes: ( 1.3.6.1.1.4 NAME 'vendorName' EQUALITY 1.3.6.1.4.1.1466.109.114.1 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation X-ORIGIN 'RFC 3045' ) attributeTypes: ( 1.3.6.1.1.5 NAME 'vendorVersion' EQUALITY 1.3.6.1.4.1.1466.109.114.1 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation X-ORIGIN 'RFC 3045' ) attributeTypes: ( 2.16.840.1.113730.3.1.34 NAME 'ref' DESC 'named reference - a labeledURI' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE distributedOperation X-ORIGIN 'RFC 3296' ) attributeTypes: ( 1.3.6.1.4.1.7628.5.4.1 NAME 'inheritable' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation X-ORIGIN 'draft-ietf-ldup-subentry' ) attributeTypes: ( 1.3.6.1.4.1.7628.5.4.2 NAME 'blockInheritance' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation X-ORIGIN 'draft-ietf-ldup-subentry' ) attributeTypes: ( 2.5.18.6 NAME 'subtreeSpecification' SYNTAX 1.3.6.1.4.1.1466.115.121.1.45 SINGLE-VALUE USAGE directoryOperation X-ORIGIN 'RFC 3672' ) attributeTypes: ( 2.5.18.12 NAME 'collectiveAttributeSubentries' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 USAGE directoryOperation NO-USER-MODIFICATION X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.18.7 NAME 'collectiveExclusions' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE directoryOperation X-ORIGIN 'RFC 3671' ) attributeTypes: ( 1.3.6.1.4.1.26027.1.1.606 NAME 'collectiveConflictBehavior' SYNTAX 1.3.6.1.4.1.26027.1.3.6 SINGLE-VALUE X-ORIGIN 'OpenDS Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.26027.1.1.621 NAME 'inheritFromDNAttribute' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 SINGLE-VALUE X-ORIGIN 'OpenDS Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.26027.1.1.622 NAME 'inheritFromBaseRDN' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE X-ORIGIN 'OpenDS Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.26027.1.1.623 NAME 'inheritFromRDNType' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 SINGLE-VALUE X-ORIGIN 'OpenDS Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.26027.1.1.624 NAME 'inheritFromRDNAttribute' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 SINGLE-VALUE X-ORIGIN 'OpenDS Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.26027.1.1.625 NAME 'inheritAttribute' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 X-ORIGIN 'OpenDS Directory Server' ) attributeTypes: ( 2.5.4.7.1 NAME 'c-l' SUP l COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.8.1 NAME 'c-st' SUP st COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.9.1 NAME 'c-street' SUP street COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.10.1 NAME 'c-o' SUP o COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.11.1 NAME 'c-ou' SUP ou COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.16.1 NAME 'c-PostalAddress' SUP postalAddress COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.17.1 NAME 'c-PostalCode' SUP postalCode COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.18.1 NAME 'c-PostOfficeBox' SUP postOfficeBox COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.19.1 NAME 'c-PhysicalDeliveryOfficeName' SUP physicalDeliveryOfficeName COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.20.1 NAME 'c-TelephoneNumber' SUP telephoneNumber COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.21.1 NAME 'c-TelexNumber' SUP telexNumber COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.23.1 NAME 'c-FacsimileTelephoneNumber' SUP facsimileTelephoneNumber COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.5.4.25.1 NAME 'c-InternationalISDNNumber' SUP internationalISDNNumber COLLECTIVE X-ORIGIN 'RFC 3671' ) attributeTypes: ( 2.16.840.1.113730.3.1.55 NAME 'aci' DESC 'Sun-defined access control information attribute type' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.26027.1.3.4 USAGE directoryOperation X-ORIGIN 'Sun Java System Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.39 NAME 'aclRights' DESC 'Sun-defined access control effective rights attribute type' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'Sun Java System Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.40 NAME 'aclRightsInfo' DESC 'Sun-defined access control effective rights information attribute type' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'Sun Java System Directory Server' ) attributeTypes: ( 2.16.840.1.113730.3.1.542 NAME 'nsUniqueId' DESC 'Sun-defined unique identifier' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'Sun Java System Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.1466.101.120.1 NAME 'administratorsAddress' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 USAGE directoryOperation X-ORIGIN 'draft-wahl-ldap-adminaddr' ) attributeTypes: ( 2.16.840.1.113730.3.1.198 NAME 'memberURL' DESC 'Sun-defined attribute type' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'Sun Java System Directory Server' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.792 NAME 'isMemberOf' DESC 'Sun-defined attribute type' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'Sun Java System Directory Server' ) attributeTypes: ( 0.9.2342.19200300.100.1.54 NAME 'dITRedirect' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.49 NAME 'dSAQuality' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.46 NAME 'janetMailbox' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.24 NAME 'lastModifiedBy' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.23 NAME 'lastModifiedTime' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.47 NAME 'mailPreferenceOption' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.53 NAME 'personalSignature' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.50 NAME 'singleLevelQuality' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.51 NAME 'subtreeMinimumQuality' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.52 NAME 'subtreeMaximumQuality' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.2 NAME 'textEncodedORAddress' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.22 NAME 'otherMailbox' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.26 NAME 'aRecord' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.27 NAME 'mDRecord' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.28 NAME 'mxRecord' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.29 NAME 'nSRecord' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.30 NAME 'sOARecord' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 0.9.2342.19200300.100.1.31 NAME 'cNAMERecord' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'RFC 1274' ) attributeTypes: ( 1.3.6.1.1.20 NAME 'entryDN' DESC 'DN of the entry' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'RFC 5020' ) attributeTypes: ( 1.3.6.1.4.1.453.16.2.103 NAME 'numSubordinates' DESC 'Count of immediate subordinates' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'draft-ietf-boreham-numsubordinates' ) attributeTypes: ( 2.16.840.1.113730.3.1.35 NAME 'changelog' DESC 'the distinguished name of the entry which contains the set of entries comprising this servers changelog' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'draft-good-ldap-changelog' ) attributeTypes: ( 1.3.6.1.4.1.36733.2.1.1.59 NAME 'etag' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'OpenDJ Directory Server' ) attributeTypes: ( 1.2.840.113549.1.9.1 NAME 'emailAddress' DESC 'represents the email address part of an X.509 certificate' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'RFC 2985' ) objectClasses: ( 2.5.6.0 NAME 'top' ABSTRACT MUST objectClass X-ORIGIN 'RFC 4512' ) objectClasses: ( 2.5.6.1 NAME 'alias' SUP top STRUCTURAL MUST aliasedObjectName X-ORIGIN 'RFC 4512' ) objectClasses: ( 2.5.6.2 NAME 'country' SUP top STRUCTURAL MUST c MAY ( searchGuide $ description ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.3 NAME 'locality' SUP top STRUCTURAL MAY ( street $ seeAlso $ searchGuide $ st $ l $ description ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.4 NAME 'organization' SUP top STRUCTURAL MUST o MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.5 NAME 'organizationalUnit' SUP top STRUCTURAL MUST ou MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.6 NAME 'person' SUP top STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.7 NAME 'organizationalPerson' SUP person STRUCTURAL MAY ( title $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.8 NAME 'organizationalRole' SUP top STRUCTURAL MUST cn MAY ( x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ seeAlso $ roleOccupant $ preferredDeliveryMethod $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l $ description ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.9 NAME 'groupOfNames' SUP top STRUCTURAL MUST cn MAY ( member $ businessCategory $ seeAlso $ owner $ ou $ o $ description ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.10 NAME 'residentialPerson' SUP person STRUCTURAL MUST l MAY ( businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.11 NAME 'applicationProcess' SUP top STRUCTURAL MUST cn MAY ( seeAlso $ ou $ l $ description ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.12 NAME 'applicationEntity' SUP top STRUCTURAL MUST ( presentationAddress $ cn ) MAY ( supportedApplicationContext $ seeAlso $ ou $ o $ l $ description ) X-ORIGIN 'RFC 2256' ) objectClasses: ( 2.5.6.13 NAME 'dSA' SUP applicationEntity STRUCTURAL MAY knowledgeInformation X-ORIGIN 'RFC 2256' ) objectClasses: ( 2.5.6.14 NAME 'device' SUP top STRUCTURAL MUST cn MAY ( serialNumber $ seeAlso $ owner $ ou $ o $ l $ description ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.15 NAME 'strongAuthenticationUser' SUP top AUXILIARY MUST userCertificate X-ORIGIN 'RFC 4523' ) objectClasses: ( 2.5.6.16 NAME 'certificationAuthority' SUP top AUXILIARY MUST ( authorityRevocationList $ certificateRevocationList $ caCertificate ) MAY crossCertificatePair X-ORIGIN 'RFC 4523' ) objectClasses: ( 2.5.6.16.2 NAME 'certificationAuthority-V2' SUP certificationAuthority AUXILIARY MAY deltaRevocationList X-ORIGIN 'RFC 4523' ) objectClasses: ( 2.5.6.17 NAME 'groupOfUniqueNames' SUP top STRUCTURAL MUST cn MAY ( uniqueMember $ businessCategory $ seeAlso $ owner $ ou $ o $ description ) X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.5.6.18 NAME 'userSecurityInformation' SUP top AUXILIARY MAY ( supportedAlgorithms ) X-ORIGIN 'RFC 4523' ) objectClasses: ( 2.5.6.19 NAME 'cRLDistributionPoint' SUP top STRUCTURAL MUST cn MAY ( certificateRevocationList $ authorityRevocationList $ deltaRevocationList ) X-ORIGIN 'RFC 4523' ) objectClasses: ( 2.5.6.20 NAME 'dmd' SUP top STRUCTURAL MUST dmdName MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description ) X-ORIGIN 'RFC 2256' ) objectClasses: ( 2.5.6.21 NAME 'pkiUser' DESC 'X.509 PKI User' SUP top AUXILIARY MAY userCertificate X-ORIGIN 'RFC 4523' ) objectClasses: ( 2.5.6.22 NAME 'pkiCA' DESC 'X.509 PKI Certificate Authority' SUP top AUXILIARY MAY ( cACertificate $ certificateRevocationList $ authorityRevocationList $ crossCertificatePair ) X-ORIGIN 'RFC 4523' ) objectClasses: ( 2.5.6.23 NAME 'deltaCRL' DESC 'X.509 delta CRL' SUP top AUXILIARY MAY deltaRevocationList X-ORIGIN 'RFC 4523' ) objectClasses: ( 1.3.6.1.4.1.1466.101.120.111 NAME 'extensibleObject' SUP top AUXILIARY X-ORIGIN 'RFC 4512' ) objectClasses: ( 2.5.20.1 NAME 'subschema' AUXILIARY MAY ( dITStructureRules $ nameForms $ ditContentRules $ objectClasses $ attributeTypes $ matchingRules $ matchingRuleUse ) X-ORIGIN 'RFC 4512' ) objectClasses: ( 0.9.2342.19200300.100.4.5 NAME 'account' SUP top STRUCTURAL MUST uid MAY ( description $ seeAlso $ l $ o $ ou $ host ) X-ORIGIN 'RFC 4524' ) objectClasses: ( 0.9.2342.19200300.100.4.6 NAME 'document' SUP top STRUCTURAL MUST documentIdentifier MAY ( cn $ description $ seeAlso $ l $ o $ ou $ documentTitle $ documentVersion $ documentAuthor $ documentLocation $ documentPublisher ) X-ORIGIN 'RFC 4524' ) objectClasses: ( 0.9.2342.19200300.100.4.9 NAME 'documentSeries' SUP top STRUCTURAL MUST cn MAY ( description $ l $ o $ ou $ seeAlso $ telephoneNumber ) X-ORIGIN 'RFC 4524' ) objectClasses: ( 0.9.2342.19200300.100.4.13 NAME 'domain' SUP top STRUCTURAL MUST dc MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description $ o $ associatedName ) X-ORIGIN 'RFC 4524' ) objectClasses: ( 0.9.2342.19200300.100.4.17 NAME 'domainRelatedObject' SUP top AUXILIARY MUST associatedDomain X-ORIGIN 'RFC 4524' ) objectClasses: ( 0.9.2342.19200300.100.4.18 NAME 'friendlyCountry' SUP country STRUCTURAL MUST co X-ORIGIN 'RFC 4524' ) objectClasses: ( 0.9.2342.19200300.100.4.14 NAME 'rFC822LocalPart' SUP domain STRUCTURAL MAY ( cn $ description $ destinationIndicator $ facsimileTelephoneNumber $ internationaliSDNNumber $ physicalDeliveryOfficeName $ postalAddress $ postalCode $ postOfficeBox $ preferredDeliveryMethod $ registeredAddress $ seeAlso $ sn $ street $ telephoneNumber $ teletexTerminalIdentifier $ telexNumber $ x121Address ) X-ORIGIN 'RFC 4524' ) objectClasses: ( 0.9.2342.19200300.100.4.7 NAME 'room' SUP top STRUCTURAL MUST cn MAY ( roomNumber $ description $ seeAlso $ telephoneNumber ) X-ORIGIN 'RFC 4524' ) objectClasses: ( 0.9.2342.19200300.100.4.19 NAME 'simpleSecurityObject' SUP top AUXILIARY MUST userPassword X-ORIGIN 'RFC 4524' ) objectClasses: ( 1.3.6.1.4.1.1466.344 NAME 'dcObject' SUP top AUXILIARY MUST dc X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' SUP organizationalPerson STRUCTURAL MAY ( audio $ businessCategory $ carLicense $ departmentNumber $ displayName $ employeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddress $ initials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ pager $ photo $ roomNumber $ secretary $ uid $ userCertificate $ x500UniqueIdentifier $ preferredLanguage $ userSMIMECertificate $ userPKCS12 ) X-ORIGIN 'RFC 2798' ) objectClasses: ( 1.3.6.1.4.1.250.3.15 NAME 'labeledURIObject' DESC 'object that contains the URI attribute type' SUP top AUXILIARY MAY labeledURI X-ORIGIN 'RFC 2079' ) objectClasses: ( 1.3.6.1.4.1.5322.13.1.1 NAME 'namedObject' SUP top STRUCTURAL MAY cn X-ORIGIN 'draft-howard-namedobject' ) objectClasses: ( 1.3.6.1.4.1.26027.1.2.900 NAME 'untypedObject' DESC 'Entry of no particular type' SUP top STRUCTURAL MAY ( c $ cn $ dc $ l $ o $ ou $ st $ street $ uid $ description $ owner $ seeAlso ) X-ORIGIN 'draft-furuseth-ldap-untypedobject' ) objectClasses: ( 1.3.6.1.1.3.1 NAME 'uidObject' SUP top AUXILIARY MUST uid X-ORIGIN 'RFC 4519' ) objectClasses: ( 2.16.840.1.113730.3.2.6 NAME 'referral' DESC 'named subordinate reference object' STRUCTURAL MUST ref X-ORIGIN 'RFC 3296' ) objectClasses: ( 2.16.840.1.113719.2.142.6.1.1 NAME 'ldapSubEntry' DESC 'LDAP Subentry class, version 1' SUP top STRUCTURAL MAY ( cn ) X-ORIGIN 'draft-ietf-ldup-subentry' ) objectClasses: ( 1.3.6.1.4.1.7628.5.6.1.1 NAME 'inheritableLDAPSubEntry' DESC 'Inheritable LDAP Subentry class, version 1' SUP ldapSubEntry STRUCTURAL MUST ( inheritable ) MAY ( blockInheritance ) X-ORIGIN 'draft-ietf-ldup-subentry' ) objectClasses: ( 2.5.17.0 NAME 'subentry' DESC 'LDAP Subentry class' SUP top STRUCTURAL MUST ( cn $ subtreeSpecification ) X-ORIGIN 'RFC 3672' ) objectClasses: ( 2.5.17.2 NAME 'collectiveAttributeSubentry' DESC 'LDAP Collective Attributes Subentry class' AUXILIARY X-ORIGIN 'RFC 3671' ) objectClasses: ( 1.3.6.1.4.1.26027.1.2.238 NAME 'inheritedCollectiveAttributeSubentry' DESC 'Inherited Collective Attributes Subentry class' SUP subentry STRUCTURAL MUST inheritAttribute MAY collectiveConflictBehavior X-ORIGIN 'OpenDS Directory Server' ) objectClasses: ( 1.3.6.1.4.1.26027.1.2.239 NAME 'inheritedFromDNCollectiveAttributeSubentry' DESC 'Inherited from DN Collective Attributes Subentry class' SUP inheritedCollectiveAttributeSubentry STRUCTURAL MUST ( inheritFromDNAttribute ) X-ORIGIN 'OpenDS Directory Server' ) objectClasses: ( 1.3.6.1.4.1.26027.1.2.240 NAME 'inheritedFromRDNCollectiveAttributeSubentry' DESC 'Inherited from RDN Collective Attributes Subentry class' SUP inheritedCollectiveAttributeSubentry STRUCTURAL MUST ( inheritFromRDNAttribute $ inheritFromRDNType $ inheritFromBaseRDN ) X-ORIGIN 'OpenDS Directory Server' ) objectClasses: ( 2.16.840.1.113730.3.2.33 NAME 'groupOfURLs' DESC 'Sun-defined objectclass' SUP top STRUCTURAL MUST ( cn ) MAY ( memberURL $ businessCategory $ description $ o $ ou $ owner $ seeAlso ) X-ORIGIN 'Sun Java System Directory Server' ) objectClasses: ( 0.9.2342.19200300.100.4.3 NAME 'pilotObject' SUP top MAY ( audio $ dITRedirect $ info $ jpegPhoto $ lastModifiedBy $ lastModifiedTime $ manager $ photo $ uniqueIdentifier ) X-ORIGIN 'RFC 1274' ) objectClasses: ( 0.9.2342.19200300.100.4.4 NAME 'pilotPerson' SUP person MAY ( userid $ textEncodedORAddress $ rfc822Mailbox $ favouriteDrink $ roomNumber $ userClass $ homeTelephoneNumber $ homePostalAddress $ secretary $ personalTitle $ preferredDeliveryMethod $ businessCategory $ janetMailbox $ otherMailbox $ mobileTelephoneNumber $ pagerTelephoneNumber $ organizationalStatus $ mailPreferenceOption $ personalSignature ) X-ORIGIN 'RFC 1274' ) objectClasses: ( 0.9.2342.19200300.100.4.20 NAME 'pilotOrganization' SUP ( organization $ organizationalUnit ) STRUCTURAL MAY buildingName X-ORIGIN 'RFC 1274' ) objectClasses: ( 0.9.2342.19200300.100.4.15 NAME 'dNSDomain' SUP domain MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord ) X-ORIGIN 'RFC 1274' ) objectClasses: ( 0.9.2342.19200300.100.4.21 NAME 'pilotDSA' SUP dSA MUST dSAQuality X-ORIGIN 'RFC 1274' ) objectClasses: ( 0.9.2342.19200300.100.4.22 NAME 'qualityLabelledData' SUP top MUST dSAQuality MAY ( subtreeMinimumQuality $ subtreeMaximumQuality ) X-ORIGIN 'RFC 1274' ) objectClasses: ( 1.2.826.0.1.3458854.2.1.1 NAME 'groupOfEntries' SUP top STRUCTURAL MUST cn MAY ( member $ businessCategory $ seeAlso $ owner $ ou $ o $ description ) X-ORIGIN 'draft-findlay-ldap-groupofentries' ) opendj-server3x-adapter/src/test/resources/config/schema/01-pwpolicy.ldif
New file @@ -0,0 +1,117 @@ # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License, Version 1.0 only # (the "License"). You may not use this file except in compliance # with the License. # # You can obtain a copy of the license at legal-notices/CDDLv1_0.txt # or http://forgerock.org/license/CDDLv1.0.html. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at legal-notices/CDDLv1_0.txt. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: # Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2006-2010 Sun Microsystems, Inc. # # # This file contains schema definitions from draft-behera-ldap-password-policy, # which defines a mechanism for storing password policy information in an LDAP # directory server. dn: cn=schema objectClass: top objectClass: ldapSubentry objectClass: subschema attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.1 NAME 'pwdAttribute' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.2 NAME 'pwdMinAge' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.3 NAME 'pwdMaxAge' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.4 NAME 'pwdInHistory' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.5 NAME 'pwdCheckQuality' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.6 NAME 'pwdMinLength' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.7 NAME 'pwdExpireWarning' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.8 NAME 'pwdGraceAuthNLimit' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.9 NAME 'pwdLockout' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.10 NAME 'pwdLockoutDuration' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.11 NAME 'pwdMaxFailure' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.12 NAME 'pwdFailureCountInterval' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.13 NAME 'pwdMustChange' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.14 NAME 'pwdAllowUserChange' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.15 NAME 'pwdSafeModify' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.16 NAME 'pwdChangedTime' DESC 'The time the password was last changed' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.17 NAME 'pwdAccountLockedTime' DESC 'The time an user account was locked' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.19 NAME 'pwdFailureTime' DESC 'The timestamps of the last consecutive authentication failures' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.20 NAME 'pwdHistory' DESC 'The history of user s passwords' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.21 NAME 'pwdGraceUseTime' DESC 'The timestamps of the grace authentication after the password has expired' EQUALITY generalizedTimeMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.22 NAME 'pwdReset' DESC 'The indication that the password has been reset' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE USAGE directoryOperation X-ORIGIN 'draft-behera-ldap-password-policy' ) attributeTypes: ( 1.3.6.1.4.1.42.2.27.8.1.23 NAME 'pwdPolicySubentry' DESC 'The pwdPolicy subentry in effect for this object' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation X-ORIGIN 'draft-behera-ldap-password-policy' ) objectClasses: ( 1.3.6.1.4.1.42.2.27.8.2.1 NAME 'pwdPolicy' SUP top AUXILIARY MUST ( pwdAttribute ) MAY ( pwdMinAge $ pwdMaxAge $ pwdInHistory $ pwdCheckQuality $ pwdMinLength $ pwdExpireWarning $ pwdGraceAuthNLimit $ pwdLockout $ pwdLockoutDuration $ pwdMaxFailure $ pwdFailureCountInterval $ pwdMustChange $ pwdAllowUserChange $ pwdSafeModify ) X-ORIGIN 'draft-behera-ldap-password-policy' ) opendj-server3x-adapter/src/test/resources/config/schema/02-config.ldif
New file Diff too large opendj-server3x-adapter/src/test/resources/config/schema/04-rfc2307bis.ldif
New file @@ -0,0 +1,215 @@ # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License, Version 1.0 only # (the "License"). You may not use this file except in compliance # with the License. # # You can obtain a copy of the license at legal-notices/CDDLv1_0.txt # or http://forgerock.org/license/CDDLv1.0.html. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at legal-notices/CDDLv1_0.txt. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: # Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2006-2008 Sun Microsystems, Inc. # # # This file contains schema definitions from the draft-howard-rfc2307bis # specification, used to store naming service information in the Directory # Server. dn: cn=schema objectClass: top objectClass: ldapSubentry objectClass: subschema attributeTypes: ( 1.3.6.1.1.1.1.0 NAME 'uidNumber' DESC 'An integer uniquely identifying a user in an administrative domain' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.1 NAME 'gidNumber' DESC 'An integer uniquely identifying a group in an administrative domain' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.2 NAME 'gecos' DESC 'The GECOS field; the common name' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.3 NAME 'homeDirectory' DESC 'The absolute path to the home directory' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.4 NAME 'loginShell' DESC 'The path to the login shell' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.5 NAME 'shadowLastChange' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.6 NAME 'shadowMin' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.7 NAME 'shadowMax' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.8 NAME 'shadowWarning' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.9 NAME 'shadowInactive' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.10 NAME 'shadowExpire' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.11 NAME 'shadowFlag' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.12 NAME 'memberUid' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.13 NAME 'memberNisNetgroup' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.14 NAME 'nisNetgroupTriple' DESC 'Netgroup triple' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.15 NAME 'ipServicePort' DESC 'Service port number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.16 NAME 'ipServiceProtocol' DESC 'Service protocol name' SUP name X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.17 NAME 'ipProtocolNumber' DESC 'IP protocol number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.18 NAME 'oncRpcNumber' DESC 'ONC RPC number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.19 NAME 'ipHostNumber' DESC 'IPv4 addresses as a dotted decimal omitting leading zeros or IPv6 addresses as defined in RFC2373' SUP name X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.20 NAME 'ipNetworkNumber' DESC 'IP network as a dotted decimal, eg. 192.168, omitting leading zeros' SUP name SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.21 NAME 'ipNetmaskNumber' DESC 'IP netmask as a dotted decimal, eg. 255.255.255.0, omitting leading zeros' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.22 NAME 'macAddress' DESC 'MAC address in maximal, colon separated hex notation, eg. 00:00:92:90:ee:e2' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.23 NAME 'bootParameter' DESC 'rpc.bootparamd parameter' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.24 NAME 'bootFile' DESC 'Boot image name' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.26 NAME 'nisMapName' DESC 'Name of a A generic NIS map' SUP name X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.27 NAME 'nisMapEntry' DESC 'A generic NIS entry' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.28 NAME 'nisPublicKey' DESC 'NIS public key' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.29 NAME 'nisSecretKey' DESC 'NIS secret key' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.30 NAME 'nisDomain' DESC 'NIS domain' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.31 NAME 'automountMapName' DESC 'automount Map Name' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.32 NAME 'automountKey' DESC 'Automount Key value' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) attributeTypes: ( 1.3.6.1.1.1.1.33 NAME 'automountInformation' DESC 'Automount information' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY DESC 'Abstraction of an account with POSIX attributes' MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) MAY ( authPassword $ userPassword $ loginShell $ gecos $ description ) X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.1 NAME 'shadowAccount' SUP top AUXILIARY DESC 'Additional attributes for shadow passwords' MUST uid MAY ( authPassword $ userPassword $ description $ shadowLastChange $ shadowMin $ shadowMax $ shadowWarning $ shadowInactive $ shadowExpire $ shadowFlag ) X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.2 NAME 'posixGroup' SUP top AUXILIARY DESC 'Abstraction of a group of accounts' MUST gidNumber MAY ( authPassword $ userPassword $ memberUid $ description ) X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.3 NAME 'ipService' SUP top STRUCTURAL DESC 'Abstraction an Internet Protocol service. Maps an IP port and protocol (such as tcp or udp) to one or more names; the distinguished value of the cn attribute denotes the canonical name of the service' MUST ( cn $ ipServicePort $ ipServiceProtocol ) MAY description X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.4 NAME 'ipProtocol' SUP top STRUCTURAL DESC 'Abstraction of an IP protocol. Maps a protocol number to one or more names. The distinguished value of the cn attribute denotes the canonical name of the protocol' MUST ( cn $ ipProtocolNumber ) MAY description X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.5 NAME 'oncRpc' SUP top STRUCTURAL DESC 'Abstraction of an Open Network Computing (ONC) [RFC1057] Remote Procedure Call (RPC) binding. This class maps an ONC RPC number to a name. The distinguished value of the cn attribute denotes the canonical name of the RPC service' MUST ( cn $ oncRpcNumber ) MAY description X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.6 NAME 'ipHost' SUP top AUXILIARY DESC 'Abstraction of a host, an IP device. The distinguished value of the cn attribute denotes the canonical name of the host. Device SHOULD be used as a structural class' MUST ( cn $ ipHostNumber ) MAY ( authPassword $ userPassword $ l $ description $ manager ) X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.7 NAME 'ipNetwork' SUP top STRUCTURAL DESC 'Abstraction of a network. The distinguished value of the cn attribute denotes the canonical name of the network' MUST ipNetworkNumber MAY ( cn $ ipNetmaskNumber $ l $ description $ manager ) X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.8 NAME 'nisNetgroup' SUP top STRUCTURAL DESC 'Abstraction of a netgroup. May refer to other netgroups' MUST cn MAY ( nisNetgroupTriple $ memberNisNetgroup $ description ) X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.9 NAME 'nisMap' SUP top STRUCTURAL DESC 'A generic abstraction of a NIS map' MUST nisMapName MAY description X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.10 NAME 'nisObject' SUP top STRUCTURAL DESC 'An entry in a NIS map' MUST ( cn $ nisMapEntry $ nisMapName ) MAY description X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.11 NAME 'ieee802Device' SUP top AUXILIARY DESC 'A device with a MAC address; device SHOULD be used as a structural class' MAY macAddress X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.12 NAME 'bootableDevice' SUP top AUXILIARY DESC 'A device with boot parameters; device SHOULD be used as a structural class' MAY ( bootFile $ bootParameter ) X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.14 NAME 'nisKeyObject' SUP top AUXILIARY DESC 'An object with a public and secret key' MUST ( cn $ nisPublicKey $ nisSecretKey ) MAY ( uidNumber $ description ) X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.15 NAME 'nisDomainObject' SUP top AUXILIARY DESC 'Associates a NIS domain with a naming context' MUST nisDomain X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.16 NAME 'automountMap' SUP top STRUCTURAL MUST ( automountMapName ) MAY description X-ORIGIN 'draft-howard-rfc2307bis' ) objectClasses: ( 1.3.6.1.1.1.2.17 NAME 'automount' SUP top STRUCTURAL DESC 'Automount information' MUST ( automountKey $ automountInformation ) MAY description X-ORIGIN 'draft-howard-rfc2307bis' ) opendj-server3x-adapter/src/test/resources/config/tasks.ldif
New file @@ -0,0 +1,20 @@ # This file contains the data used by the Directory Server task scheduler # backend. Do not edit this file directly, as there is a risk that those # changes will be lost. Scheduled and recurring task definitions should only # be edited using the administration utilities provided with the Directory # Server dn: cn=tasks objectClass: top objectClass: untypedObject cn: tasks dn: cn=Scheduled Tasks,cn=tasks objectClass: top objectClass: untypedObject cn: Scheduled Tasks dn: cn=Recurring Tasks,cn=tasks objectClass: top objectClass: untypedObject cn: Recurring Tasks opendj-server3x-adapter/src/test/resources/locks/backend-adminRoot.lock
opendj-server3x-adapter/src/test/resources/locks/backend-ads-truststore.lock
opendj-server3x-adapter/src/test/resources/locks/backend-backup.lock
opendj-server3x-adapter/src/test/resources/locks/backend-monitor.lock
opendj-server3x-adapter/src/test/resources/locks/backend-schema.lock
opendj-server3x-adapter/src/test/resources/locks/backend-tasks.lock
opendj-server3x-adapter/src/test/resources/locks/backend-userRoot.lock
opendj-server3x-adapter/src/test/resources/locks/server.lock
pom.xml
@@ -101,6 +101,7 @@ <module>opendj-rest2ldap</module> <module>opendj-rest2ldap-servlet</module> <module>opendj-server2x-adapter</module> <module>opendj-server3x-adapter</module> <module>opendj-server</module> <module>opendj-server-example-plugin</module> <module>opendj-slf4j-adapter</module>