| New file |
| | |
| | | # Keep HTML checked out with LF on all platforms so javadoc doclint |
| | | # (JDK 25/26) does not treat CR (from CRLF) as part of a multi-line tag name. |
| | | *.html text eol=lf |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package com.forgerock.opendj.cli; |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * Returns the "bindDN" string argument. <br/> |
| | | * Returns the "bindDN" string argument. <br> |
| | | * <i> N.B : the 'D' short option is also used by rootUserDN.</i> |
| | | * |
| | | * @param defaultBindDN |
| | |
| | | |
| | | |
| | | /** |
| | | * Returns the "bindDN" string argument. <br/> |
| | | * Returns the "bindDN" string argument. <br> |
| | | * <i> N.B : the 'D' short option is also used by rootUserDN.</i> |
| | | * |
| | | * @param defaultBindDN |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package com.forgerock.opendj.cli; |
| | | |
| | |
| | | * If a problem occurs while loading with the key store. |
| | | * @throws CertificateException |
| | | * If a problem occurs while loading with the key store. |
| | | * @throws UnrecoverableKeyException |
| | | * @throws UnrecoverableKeyException |
| | | * If a problem occurs while recovering a key from the key store. |
| | | */ |
| | | public X509KeyManager getKeyManager(String keyStoreFile) throws KeyStoreException, |
| | | IOException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException { |
| | |
| | | * user will be different as a normal connection. E.g if set : |
| | | * |
| | | * <pre> |
| | | * >>>> Specify OpenDJ LDAP connection parameters |
| | | * >>>> Specify OpenDJ LDAP connection parameters |
| | | * |
| | | * Directory server administration port number [4444]: |
| | | * </pre> |
| | |
| | | * vs normal mode |
| | | * |
| | | * <pre> |
| | | * >>>> Specify OpenDJ LDAP connection parameters |
| | | * >>>> Specify OpenDJ LDAP connection parameters |
| | | * |
| | | * Directory server port number [1389]: |
| | | * </pre> |
| | |
| | | * |
| | | * Copyright 2006-2008 Sun Microsystems, Inc. |
| | | * Portions copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package com.forgerock.opendj.cli; |
| | | |
| | |
| | | |
| | | /** |
| | | * Returns a builder which can be used for incrementally constructing a new |
| | | * {@link MultiChoiceArgument<V>}. |
| | | * {@link MultiChoiceArgument}. |
| | | * |
| | | * @param <V> |
| | | * The type of values returned by this argument. |
| | |
| | | return new Builder<>(longIdentifier); |
| | | } |
| | | |
| | | /** A fluent API for incrementally constructing {@link MultiChoiceArgument<V>}. */ |
| | | /** A fluent API for incrementally constructing {@link MultiChoiceArgument}. */ |
| | | public static final class Builder<V> extends ArgumentBuilder<Builder<V>, V, MultiChoiceArgument<V>> { |
| | | private final List<V> allowedValues = new LinkedList<>(); |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * Specifies the set of values that are allowed for the {@link MultiChoiceArgument<V>}. |
| | | * Specifies the set of values that are allowed for the {@link MultiChoiceArgument}. |
| | | * |
| | | * @param allowedValues |
| | | * The {@link MultiChoiceArgument<V>} allowed values. |
| | | * The {@link MultiChoiceArgument} allowed values. |
| | | * @return This builder. |
| | | */ |
| | | public Builder<V> allowedValues(final Collection<V> allowedValues) { |
| | |
| | | } |
| | | |
| | | /** |
| | | * Specifies the set of values that are allowed for the {@link MultiChoiceArgument<V>}. |
| | | * Specifies the set of values that are allowed for the {@link MultiChoiceArgument}. |
| | | * |
| | | * @param allowedValues |
| | | * The {@link MultiChoiceArgument<V>} allowed values. |
| | | * The {@link MultiChoiceArgument} allowed values. |
| | | * @return This builder. |
| | | */ |
| | | @SuppressWarnings("unchecked") |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2012-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package com.forgerock.opendj.cli; |
| | | |
| | |
| | | * <p> |
| | | * The following code sample presents how to create a {@link MultiColumnPrinter} to write CSV data: |
| | | * <pre> |
| | | * final List<MultiColumnPrinter.Column> columns = new ArrayList<>(); |
| | | * final List<MultiColumnPrinter.Column> columns = new ArrayList<>(); |
| | | * columns.add(MultiColumnPrinter.column("CountryNameColumnId", "country_name", 0)); |
| | | * columns.add(MultiColumnPrinter.column("populationDensityId", "population_density", 1)); |
| | | * columns.add(MultiColumnPrinter.column("GiniId", "gini", 1)); |
| | |
| | | * The following code sample presents how to configure a {@link MultiColumnPrinter} |
| | | * to print the same data on console with some title headers. |
| | | * <pre> |
| | | * final List<MultiColumnPrinter.Column> columns = new ArrayList<>(); |
| | | * final List<MultiColumnPrinter.Column> columns = new ArrayList<>(); |
| | | * columns.add(MultiColumnPrinter.separatorColumn()); |
| | | * columns.add(MultiColumnPrinter.column("CountryNameColumnId", "Country Name", 15, 0)); |
| | | * columns.add(MultiColumnPrinter.column("populationDensityId", "Density", 10, 1)); |
| | |
| | | * |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package com.forgerock.opendj.cli; |
| | | |
| | |
| | | * Repeats the given {@code char} n times. |
| | | * |
| | | * @param charToRepeat |
| | | * The {code char} to repeat. |
| | | * The {@code char} to repeat. |
| | | * @param length |
| | | * The repetition count. |
| | | * @return The given {code char} n times. |
| | | * @return The given {@code char} n times. |
| | | */ |
| | | public static String repeat(final char charToRepeat, final int length) { |
| | | final char[] str = new char[length]; |
| | |
| | | } |
| | | |
| | | /** |
| | | * Return a {code ValidationCallback<Integer>} which can be used to validate a port number. |
| | | * Return a {@code ValidationCallback<Integer>} which can be used to validate a port number. |
| | | * |
| | | * @param defaultPort |
| | | * The default value to suggest to the user. |
| | | * @return a {code ValidationCallback<Integer>} which can be used to validate a port number. |
| | | * @return a {@code ValidationCallback<Integer>} which can be used to validate a port number. |
| | | */ |
| | | public static ValidationCallback<Integer> portValidationCallback(final int defaultPort) { |
| | | return new ValidationCallback<Integer>() { |
| | |
| | | } |
| | | |
| | | /** |
| | | * Adds a {@link LocalizableMessage} to the provided {@link Collection<LocalizableMessage>} |
| | | * Adds a {@link LocalizableMessage} to the provided {@link Collection} |
| | | * if both provided {@link Argument} are presents in the command line arguments. |
| | | * |
| | | * @param errors |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2013-2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | --> |
| | | <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> |
| | |
| | | <opendj.osgi.import.additional> |
| | | org.forgerock.opendj.*;provide:=true |
| | | </opendj.osgi.import.additional> |
| | | <doclint>none</doclint> |
| | | </properties> |
| | | |
| | | <build><finalName>${project.groupId}.${project.artifactId}</finalName> |
| | |
| | | * |
| | | * Copyright 2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.forgerock.opendj.config; |
| | |
| | | * Set the lower limit in milli-seconds. |
| | | * |
| | | * @param lowerLimit |
| | | * The new lower limit (must be >= 0) in milli-seconds. |
| | | * The new lower limit (must be >= 0) in milli-seconds. |
| | | * @throws IllegalArgumentException |
| | | * If a negative lower limit was specified, or the lower |
| | | * limit is greater than the upper limit. |
| | |
| | | * |
| | | * Copyright 2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.forgerock.opendj.config; |
| | |
| | | * Set the lower limit. |
| | | * |
| | | * @param lowerLimit |
| | | * The new lower limit (must be >= 0). |
| | | * The new lower limit (must be >= 0). |
| | | * @throws IllegalArgumentException |
| | | * If a negative lower limit was specified or the lower |
| | | * limit is greater than the upper limit. |
| | |
| | | * |
| | | * Copyright 2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2015-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.forgerock.opendj.config; |
| | |
| | | /** |
| | | * Indicates whether some other object is "equal to" this property |
| | | * definition. This method must obey the general contract of |
| | | * <tt>Object.equals(Object)</tt>. Additionally, this method can return |
| | | * <tt>true</tt> <i>only</i> if the specified Object is also a property |
| | | * <code>Object.equals(Object)</code>. Additionally, this method can return |
| | | * <code>true</code> <i>only</i> if the specified Object is also a property |
| | | * definition and it has the same name, as returned by {@link #getName()}, |
| | | * and also is deemed to be "compatible" with this property |
| | | * definition. Compatibility means that the two property definitions share |
| | |
| | | * |
| | | * Copyright 2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.config; |
| | | |
| | |
| | | * Set the lower limit in bytes. |
| | | * |
| | | * @param lowerLimit |
| | | * The new lower limit (must be >= 0) in bytes. |
| | | * The new lower limit (must be >= 0) in bytes. |
| | | * @throws IllegalArgumentException |
| | | * If a negative lower limit was specified, or if the lower |
| | | * limit is greater than the upper limit. |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2011-2016 ForgeRock AS. |
| | | Portions Copyright 2025 3A Systems LLC. |
| | | Portions Copyright 2025-2026 3A Systems LLC. |
| | | --> |
| | | <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> |
| | |
| | | com.sun.security.auth*;resolution:=optional |
| | | </opendj.osgi.import.additional> |
| | | <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'</maven.build.timestamp.format> |
| | | <doclint>none</doclint> |
| | | </properties> |
| | | |
| | | |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package com.forgerock.reactive; |
| | | |
| | |
| | | /** |
| | | * Filters and/or transforms the request and/or response of an exchange. |
| | | * |
| | | * <pre>{@code |
| | | * +--------+ +---------+ |
| | | * ---> I1 ---> | | ---> I2 ---> | | |
| | | * | Filter | | Handler | |
| | |
| | | * | Filter | | Filter | | Handler | |
| | | * <--- O1 --< | | <--- O2 <--- | | <--- O3 ---< | | |
| | | * +--------+ +---------+ +---------+ |
| | | * }</pre> |
| | | * |
| | | * @param <C> |
| | | * Context in which the filter will be evaluated |
| | |
| | | * |
| | | * Copyright 2009 Sun Microsystems, Inc. |
| | | * Portions copyright 2012-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap; |
| | | |
| | |
| | | /** |
| | | * Relative read method for reading a compacted long value. |
| | | * Compaction allows to reduce number of bytes needed to hold long types |
| | | * depending on its value (i.e: if value < 128, value will be encoded using one byte only). |
| | | * depending on its value (i.e: if value < 128, value will be encoded using one byte only). |
| | | * Reads the next bytes at this reader's current position, composing them into a long value |
| | | * according to big-endian byte order, and then increments the position by the size of the |
| | | * encoded long. |
| | |
| | | /** |
| | | * Relative read method for reading a compacted int value. |
| | | * Compaction allows to reduce number of bytes needed to hold int types |
| | | * depending on its value (i.e: if value < 128, value will be encoded using one byte only). |
| | | * depending on its value (i.e: if value < 128, value will be encoded using one byte only). |
| | | * Reads the next bytes at this reader's current position, composing them into an int value |
| | | * according to big-endian byte order, and then increments the position by the size of the |
| | | * encoded int. |
| | |
| | | * |
| | | * Copyright 2009 Sun Microsystems, Inc. |
| | | * Portions copyright 2011-2015 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap; |
| | | |
| | |
| | | * |
| | | * <pre> |
| | | * int i = ...; |
| | | * int i8bits = i & 0xFF; |
| | | * int i8bits = i & 0xFF; |
| | | * // only use "i8bits" |
| | | * </pre> |
| | | * OR |
| | |
| | | * |
| | | * <pre> |
| | | * int i = ...; |
| | | * int i16bits = i & 0xFFFF; |
| | | * int i16bits = i & 0xFFFF; |
| | | * // only use "i16bits" |
| | | * </pre> |
| | | * OR |
| | |
| | | * |
| | | * Copyright 2009-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.forgerock.opendj.ldap; |
| | |
| | | * A connection with a Directory Server over which read and update operations |
| | | * may be performed. See RFC 4511 for the LDAPv3 protocol specification and more |
| | | * information about the types of operations defined in LDAP. |
| | | * <p> |
| | | * <h3>Operation processing</h3> |
| | | * <h2>Operation processing</h2> |
| | | * <p> |
| | | * Operations may be performed synchronously or asynchronously depending on the |
| | | * method chosen. Asynchronous methods can be identified by their {@code Async} |
| | | * suffix. |
| | | * <p> |
| | | * <h4>Performing operations synchronously</h4> |
| | | * <h3>Performing operations synchronously</h3> |
| | | * <p> |
| | | * Synchronous methods block until a response is received from the Directory |
| | | * Server, at which point an appropriate {@link Result} object is returned if |
| | |
| | | * another thread. This will cause the calling thread unblock and throw a |
| | | * {@link CancelledResultException} whose cause is the underlying |
| | | * {@link InterruptedException}. |
| | | * <p> |
| | | * <h4>Performing operations asynchronously</h4> |
| | | * <h3>Performing operations asynchronously</h3> |
| | | * <p> |
| | | * Asynchronous methods, identified by their {@code Async} suffix, are |
| | | * non-blocking, returning a {@link LdapPromise} or sub-type thereof which can |
| | |
| | | * SearchResponseHandler handle = ...; |
| | | * connection.search(request, handler); |
| | | * </pre> |
| | | * <p> |
| | | * <h3>Closing connections</h3> |
| | | * <h2>Closing connections</h2> |
| | | * <p> |
| | | * Applications must ensure that a connection is closed by calling |
| | | * {@link #close()} even if a fatal error occurs on the connection. Once a |
| | |
| | | * connection. In this case all requests subsequent to the failure will fail |
| | | * with an appropriate {@link LdapException} when their result is |
| | | * retrieved. |
| | | * <p> |
| | | * <h3>Event notification</h3> |
| | | * <h2>Event notification</h2> |
| | | * <p> |
| | | * Applications can choose to be notified when a connection is closed by the |
| | | * application, receives an unsolicited notification, or experiences a fatal |
| | |
| | | * |
| | | * Copyright 2009-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap; |
| | | |
| | |
| | | * connection factories. A round robin load balancing algorithm distributes connection requests across a list of |
| | | * connection factories one at a time. When the end of the list is reached, the algorithm starts again from the |
| | | * beginning. |
| | | * <p/> |
| | | * <p> |
| | | * This algorithm is typically used for load-balancing <i>within</i> data centers, where load must be distributed |
| | | * equally across multiple data sources. This algorithm contrasts with the |
| | | * {@link #newFailoverLoadBalancer(Collection, Options)} which is used for load-balancing <i>between</i> data |
| | | * centers. |
| | | * <p/> |
| | | * <p> |
| | | * If a problem occurs that temporarily prevents connections from being obtained for one of the connection |
| | | * factories, then this algorithm automatically "fails over" to the next operational connection factory in the list. |
| | | * If none of the connection factories are operational then a {@code ConnectionException} is returned to the |
| | | * client. |
| | | * <p/> |
| | | * <p> |
| | | * The implementation periodically attempts to connect to failed connection factories in order to determine if they |
| | | * have become available again. |
| | | * |
| | |
| | | * Creates a new "fail-over" load-balancer which will load-balance connections across the provided set of connection |
| | | * factories. A fail-over load balancing algorithm provides fault tolerance across multiple underlying connection |
| | | * factories. |
| | | * <p/> |
| | | * <p> |
| | | * This algorithm is typically used for load-balancing <i>between</i> data centers, where there is preference to |
| | | * always forward connection requests to the <i>closest available</i> data center. This algorithm contrasts with the |
| | | * {@link #newRoundRobinLoadBalancer(Collection, Options)} which is used for load-balancing <i>within</i> a data |
| | | * center. |
| | | * <p/> |
| | | * <p> |
| | | * This algorithm selects connection factories based on the order in which they were provided during construction. |
| | | * More specifically, an attempt to obtain a connection factory will always return the <i>first operational</i> |
| | | * connection factory in the list. Applications should, therefore, organize the connection factories such that the |
| | | * <i>preferred</i> (usually the closest) connection factories appear before those which are less preferred. |
| | | * <p/> |
| | | * <p> |
| | | * If a problem occurs that temporarily prevents connections from being obtained for one of the connection |
| | | * factories, then this algorithm automatically "fails over" to the next operational connection factory in the list. |
| | | * If none of the connection factories are operational then a {@code ConnectionException} is returned to the |
| | | * client. |
| | | * <p/> |
| | | * <p> |
| | | * The implementation periodically attempts to connect to failed connection factories in order to determine if they |
| | | * have become available again. |
| | | * |
| | |
| | | * by performing a linear probe in order to find the next available replica thus ensuring high-availability when a |
| | | * network partition occurs while sacrificing consistency, since the unavailable replica may still be visible to |
| | | * other clients. |
| | | * <p/> |
| | | * <p> |
| | | * This load-balancer distributes requests based on the hash of their target DN and handles all core operations, as |
| | | * well as any password modify extended requests and SASL bind requests which use authentication IDs having the |
| | | * "dn:" form. Note that subtree operations (searches, subtree deletes, and modify DN) are likely to include entries |
| | | * which are "mastered" on different replicas, so client applications should be more tolerant of inconsistencies. |
| | | * Requests that are either unrecognized or that do not have a parameter that may be considered to be a target DN |
| | | * will be routed randomly. |
| | | * <p/> |
| | | * <p> |
| | | * <b>NOTE:</b> this connection factory returns fake connections, since real connections are obtained for each |
| | | * request. Therefore, the returned fake connections have certain limitations: abandon requests will be ignored |
| | | * since they cannot be routed; connection event listeners can be registered, but will only be notified when the |
| | | * fake connection is closed or when all of the connection factories are unavailable. |
| | | * <p/> |
| | | * <p> |
| | | * <b>NOTE:</b> in deployments where there are multiple client applications, care should be taken to ensure that |
| | | * the factories are configured using the same ordering, otherwise requests will not be routed consistently |
| | | * across the client applications. |
| | | * <p/> |
| | | * <p> |
| | | * The implementation periodically attempts to connect to failed connection factories in order to determine if they |
| | | * have become available again. |
| | | * |
| | |
| | | * This load balancer allows client applications to linearly scale their deployment for write throughput as well |
| | | * as total number of entries. For example, if a single replicated topology can support 10000 updates/s and a |
| | | * total of 100M entries, then a 4 way distributed topology could support up to 40000 updates/s and 400M entries. |
| | | * <p/> |
| | | * <p> |
| | | * <b>NOTE:</b> there are a number of assumptions in the design of this load balancer as well as a number of |
| | | * limitations: |
| | | * <ul> |
| | |
| | | * which will have the effect of directing requests to the other replicas. Consistency is low compared to the |
| | | * "affinity" load-balancer, because there is no guarantee that requests for the same DN are directed to the same |
| | | * replica. |
| | | * <p/> |
| | | * <p> |
| | | * It is possible to increase consistency by providing a {@link AffinityControl} with a |
| | | * request. The control value will then be used to compute a hash that will determine the connection to use. In that |
| | | * case, the "least requests" behavior is completely overridden, i.e. the most saturated connection may be chosen |
| | | * depending on the hash value. |
| | | * <p/> |
| | | * <p> |
| | | * <b>NOTE:</b> this connection factory returns fake connections, since real connections are obtained for each |
| | | * request. Therefore, the returned fake connections have certain limitations: abandon requests will be ignored |
| | | * since they cannot be routed; connection event listeners can be registered, but will only be notified when the |
| | | * fake connection is closed or when all of the connection factories are unavailable. |
| | | * <p/> |
| | | * <p> |
| | | * <b>NOTE:</b>Server selection is only based on information which is local to the client application. If other |
| | | * applications are accessing the same servers then their additional load is not taken into account. Therefore, |
| | | * this load balancer is only effective if all client applications access the servers in a similar way. |
| | | * <p/> |
| | | * <p> |
| | | * The implementation periodically attempts to connect to failed connection factories in order to determine if they |
| | | * have become available again. |
| | | * |
| | |
| | | * |
| | | * Copyright 2009-2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap; |
| | | |
| | |
| | | * <p> |
| | | * Here is an example usage: |
| | | * <pre> |
| | | * DN.valueOf("ou=people,dc=example,dc=com").rdn(0) => "ou=people" |
| | | * DN.valueOf("ou=people,dc=example,dc=com").rdn(1) => "dc=example" |
| | | * DN.valueOf("ou=people,dc=example,dc=com").rdn(2) => "dc=com" |
| | | * DN.valueOf("ou=people,dc=example,dc=com").rdn(3) => null |
| | | * DN.valueOf("ou=people,dc=example,dc=com").rdn(0) => "ou=people" |
| | | * DN.valueOf("ou=people,dc=example,dc=com").rdn(1) => "dc=example" |
| | | * DN.valueOf("ou=people,dc=example,dc=com").rdn(2) => "dc=com" |
| | | * DN.valueOf("ou=people,dc=example,dc=com").rdn(3) => null |
| | | * </pre> |
| | | * |
| | | * @param index |
| | |
| | | * |
| | | * Copyright 2009-2011 Sun Microsystems, Inc. |
| | | * Portions copyright 2012-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap; |
| | | |
| | |
| | | * <p> |
| | | * Filters can be constructed using the various factory methods. For example, |
| | | * the following code illustrates how to create a filter having the string |
| | | * representation "{@code (&(cn=bjensen)(age>=21))}": |
| | | * representation "{@code (&(cn=bjensen)(age>=21))}": |
| | | * |
| | | * <pre> |
| | | * import static org.forgerock.opendj.Filter.*; |
| | |
| | | * Filter filter = and(equality("cn", "bjensen"), greaterOrEqual("age", 21)); |
| | | * |
| | | * // Alternatively use a filter template: |
| | | * Filter filter = Filter.format("(&(cn=%s)(age>=%s))", "bjensen", 21); |
| | | * Filter filter = Filter.format("(&(cn=%s)(age>=%s))", "bjensen", 21); |
| | | * </pre> |
| | | * |
| | | * @see <a href="http://tools.ietf.org/html/rfc4511">RFC 4511 - Lightweight |
| | |
| | | * |
| | | * Copyright 2009-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap; |
| | | |
| | |
| | | * <li> UNLOCKED(0) - the synchronizer may be acquired shared or exclusively |
| | | * <li> LOCKED_EXCLUSIVELY(-1) - the synchronizer is held exclusively and cannot be acquired shared or |
| | | * exclusively. An exclusive lock is held while a heart beat is in progress |
| | | * <li> LOCKED_SHARED(>0) - the synchronizer is held shared and cannot be acquired exclusively. N shared locks |
| | | * <li> LOCKED_SHARED(>0) - the synchronizer is held shared and cannot be acquired exclusively. N shared locks |
| | | * are held while N Bind or StartTLS operations are in progress. |
| | | * </ul> |
| | | */ |
| | |
| | | * construct a range whose contents is a sub-tree of entries, excluding the base entry: |
| | | * |
| | | * <pre> |
| | | * SortedMap<DN, Entry> entries = ...; |
| | | * SortedMap<DN, Entry> entries = ...; |
| | | * DN baseDN = ...; |
| | | * |
| | | * // Returns a map containing the baseDN and all of its subordinates. |
| | | * SortedMap<DN,Entry> subtree = entries.subMap( |
| | | * SortedMap<DN,Entry> subtree = entries.subMap( |
| | | * baseDN.child(RDN.minValue()), baseDN.child(RDN.maxValue())); |
| | | * </pre> |
| | | * |
| | |
| | | * construct a range whose contents is a sub-tree of entries: |
| | | * |
| | | * <pre> |
| | | * SortedMap<DN, Entry> entries = ...; |
| | | * SortedMap<DN, Entry> entries = ...; |
| | | * DN baseDN = ...; |
| | | * |
| | | * // Returns a map containing the baseDN and all of its subordinates. |
| | | * SortedMap<DN,Entry> subtree = entries.subMap(baseDN, baseDN.child(RDN.maxValue())); |
| | | * SortedMap<DN,Entry> subtree = entries.subMap(baseDN, baseDN.child(RDN.maxValue())); |
| | | * </pre> |
| | | * |
| | | * @return A constant containing a special RDN which sorts after any |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2012-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap; |
| | | |
| | |
| | | * Connection connection = ...; |
| | | * SearchRequest request = ...; |
| | | * |
| | | * Comparator<Entry> comparator = SortKey.comparator("cn"); |
| | | * Set<SearchResultEntry>; results = new TreeSet<SearchResultEntry>(comparator); |
| | | * Comparator<Entry> comparator = SortKey.comparator("cn"); |
| | | * Set<SearchResultEntry>; results = new TreeSet<SearchResultEntry>(comparator); |
| | | * |
| | | * connection.search(request, results); |
| | | * </pre> |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap.controls; |
| | | |
| | |
| | | * The persistent search request control for Active Directory as defined by |
| | | * Microsoft. This control allows a client to receive notification of changes |
| | | * that occur in an Active Directory server. |
| | | * <br/> |
| | | * <br> |
| | | * |
| | | * <pre> |
| | | * Connection connection = ...; |
| | |
| | | * SearchResultEntry entry = reader.readEntry(); // Entry that changed |
| | | * |
| | | * Boolean isDeleted = entry.parseAttribute("isDeleted").asBoolean(); |
| | | * if (isDeleted != null && isDeleted) { |
| | | * if (isDeleted != null && isDeleted) { |
| | | * // Handle entry deletion |
| | | * } |
| | | * String whenCreated = entry.parseAttribute("whenCreated").asString(); |
| | | * String whenChanged = entry.parseAttribute("whenChanged").asString(); |
| | | * if (whenCreated != null && whenChanged != null) { |
| | | * if (whenCreated != null && whenChanged != null) { |
| | | * if (whenCreated.equals(whenChanged)) { |
| | | * //Handle entry addition |
| | | * } else { |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap.controls; |
| | | |
| | |
| | | * |
| | | * Control control = ...; |
| | | * String OID = control.getOID(); |
| | | * if (supported != null && !supported.isEmpty() && supported.contains(OID)) { |
| | | * if (supported != null && !supported.isEmpty() && supported.contains(OID)) { |
| | | * // The control is supported. Use it here... |
| | | * } |
| | | * </pre> |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap.controls; |
| | | |
| | |
| | | * PasswordExpiredResponseControl control = |
| | | * result.getControl(PasswordExpiredResponseControl.DECODER, |
| | | * new DecodeOptions()); |
| | | * if (!(control == null) && control.hasValue()) { |
| | | * if (!(control == null) && control.hasValue()) { |
| | | * // Password expired |
| | | * } |
| | | * } catch (DecodeException de) { |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap.controls; |
| | | |
| | |
| | | * PasswordExpiringResponseControl control = |
| | | * result.getControl(PasswordExpiringResponseControl.DECODER, |
| | | * new DecodeOptions()); |
| | | * if (!(control == null) && control.hasValue()) { |
| | | * if (!(control == null) && control.hasValue()) { |
| | | * // Password expires in control.getSecondsUntilExpiration() seconds |
| | | * } |
| | | * } catch (DecodeException de) { |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap.controls; |
| | | |
| | |
| | | * PasswordPolicyResponseControl control = |
| | | * result.getControl(PasswordPolicyResponseControl.DECODER, |
| | | * new DecodeOptions()); |
| | | * if (!(control == null) && !(control.getWarningType() == null)) { |
| | | * if (!(control == null) && !(control.getWarningType() == null)) { |
| | | * // Password policy warning, use control.getWarningType(), |
| | | * // and control.getWarningValue(). |
| | | * } |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2012-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap.controls; |
| | | |
| | |
| | | * PasswordPolicyResponseControl control = |
| | | * result.getControl(PasswordPolicyResponseControl.DECODER, |
| | | * new DecodeOptions()); |
| | | * if (!(control == null) && !(control.getWarningType() == null)) { |
| | | * if (!(control == null) && !(control.getWarningType() == null)) { |
| | | * // Password policy warning, use control.getWarningType(), |
| | | * // and control.getWarningValue(). |
| | | * } |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2012-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap.controls; |
| | | |
| | |
| | | * |
| | | * ServerSideSortResponseControl control = result.getControl( |
| | | * ServerSideSortResponseControl.DECODER, new DecodeOptions()); |
| | | * if (control != null && control.getResult() == ResultCode.SUCCESS) { |
| | | * if (control != null && control.getResult() == ResultCode.SUCCESS) { |
| | | * // Entries are sorted. |
| | | * } else { |
| | | * // Entries not sorted. |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2012-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap.controls; |
| | | |
| | |
| | | * |
| | | * ServerSideSortResponseControl control = result.getControl( |
| | | * ServerSideSortResponseControl.DECODER, new DecodeOptions()); |
| | | * if (control != null && control.getResult() == ResultCode.SUCCESS) { |
| | | * if (control != null && control.getResult() == ResultCode.SUCCESS) { |
| | | * // Entries are sorted. |
| | | * } else { |
| | | * // Entries not sorted. |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2009 Sun Microsystems, Inc. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.forgerock.opendj.ldap.requests; |
| | |
| | | * |
| | | * ExtendedRequest extension = ...; |
| | | * String OID = extension.getOID(); |
| | | * if (supported != null && !supported.isEmpty() && supported.contains(OID)) { |
| | | * if (supported != null && !supported.isEmpty() && supported.contains(OID)) { |
| | | * // The extension is supported. Use it here... |
| | | * } |
| | | * </pre> |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2012-2015 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.forgerock.opendj.ldap.requests; |
| | |
| | | * well as for generating a new password if none was provided. |
| | | * |
| | | * <pre> |
| | | * String userIdentity = ...; // For example, u:<uid> or dn:<DN> |
| | | * String userIdentity = ...; // For example, u:<uid> or dn:<DN> |
| | | * char[] oldPassword = ...; |
| | | * char[] newPassword = ...; |
| | | * Connection connection = ...; |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2014 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.forgerock.opendj.ldap.requests; |
| | |
| | | * authorization ID, or {@code authzId}, as defined in RFC 4513 section 5.2.1.8. |
| | | * |
| | | * <pre> |
| | | * String authcid = ...; // Authentication ID, e.g. dn:<dn>, u:<uid> |
| | | * String authzid = ...; // Authorization ID, e.g. dn:<dn>, u:<uid> |
| | | * String authcid = ...; // Authentication ID, e.g. dn:<dn>, u:<uid> |
| | | * String authzid = ...; // Authorization ID, e.g. dn:<dn>, u:<uid> |
| | | * char[] password = ...; |
| | | * Connection connection = ...; // Use StartTLS to protect the request |
| | | * |
| | |
| | | * |
| | | * Copyright 2009 Sun Microsystems, Inc. |
| | | * Portions Copyright 2014 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.forgerock.opendj.ldap.requests; |
| | |
| | | * authenticate using one of the SASL authentication methods defined in RFC |
| | | * 4513. |
| | | * <p> |
| | | * <TODO>finish doc. |
| | | * TODO: finish doc. |
| | | * |
| | | * @see <a href="http://tools.ietf.org/html/rfc4513#section-5.2.1.8">RFC 4513 - |
| | | * SASL Authorization Identities (authzId) </a> |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2015-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldap.spi; |
| | | |
| | |
| | | |
| | | /** |
| | | * Releases any resources associated with this connection. |
| | | * <p/> |
| | | * <p> |
| | | * Calling {@code close} on a connection that is already closed has no effect. |
| | | * @see org.forgerock.opendj.ldap.Connection#close() |
| | | */ |
| | |
| | | |
| | | /** |
| | | * Releases any resources associated with this connection. |
| | | * <p/> |
| | | * <p> |
| | | * Calling {@code close} on a connection that is already closed has no effect. |
| | | * |
| | | * @param request |
| | |
| | | } |
| | | |
| | | /** |
| | | * Creates a new {@link } containing a partially decoded LDAP message. |
| | | * Creates a new {@link LdapRequestEnvelope} containing a partially decoded LDAP message. |
| | | * |
| | | * @param messageType |
| | | * Operation code of the message |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.ldif; |
| | | |
| | |
| | | * <p> |
| | | * Sample usage: |
| | | * <pre> |
| | | * List<Entry> smiths = TestCaseUtils.makeEntries( |
| | | * List<Entry> smiths = TestCaseUtils.makeEntries( |
| | | * "dn: cn=John Smith,dc=example,dc=com", |
| | | * "objectclass: inetorgperson", |
| | | * "cn: John Smith", |
| | |
| | | * information: "Portions copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.security; |
| | | |
| | |
| | | * protected by a separate password. The default value for this option is a password factory which always |
| | | * returns {@code null}, indicating that there is no global password and that separate passwords should be used |
| | | * instead. |
| | | * <p/> |
| | | * <p> |
| | | * Applications should provide a factory which always returns a new instance of the same password. The LDAP key |
| | | * store will destroy the contents of the returned password after each use. It is the responsibility of the |
| | | * factory to protect the in memory representation of the password between successive calls. |
| | |
| | | * information: "Portions copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | /** |
| | |
| | | * java.security.KeyStore KeyStore} service. The key store has the type "LDAP" and alias "OPENDJ" and can be created |
| | | * using a number of approaches. Firstly, by directly calling one of the factory methods in {@link |
| | | * org.forgerock.opendj.security.OpenDJProvider}: |
| | | * <p> |
| | | * <pre> |
| | | * ConnectionFactory ldapServer = ...; |
| | | * DN keyStoreBaseDN = DN.valueOf("ou=key store,dc=example,dc=com"); |
| | |
| | | * <p> |
| | | * Alternatively, if the OpenDJ security provider is registered with the JVM's JCA framework together with a suitable |
| | | * configuration file, then an LDAP key store can be created like this: |
| | | * <p> |
| | | * <pre> |
| | | * KeyStore ldapKeyStore = KeyStore.getInstance("LDAP"); |
| | | * ldapKeyStore.load(null); |
| | |
| | | * <p> |
| | | * Interacting with an LDAP/LDIF key store using Java's "keytool" command is a little complicated if the OpenDJ provider |
| | | * is not configured in the JVM due to the need to specify the class-path: |
| | | * <p> |
| | | * <pre> |
| | | * # Generate an RSA private key entry: |
| | | * keytool -J-cp -J/path/to/opendj/server/lib/bootstrap-client.jar \ |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2011-2015 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | --> |
| | | <html> |
| | | <body> |
| | |
| | | search. The search results are output as LDIF to the standard |
| | | output: |
| | | <br> |
| | | <table width="100%"> |
| | | <table> |
| | | <caption>Example: connecting to a directory server and performing a search</caption> |
| | | <tbody> |
| | | <tr> |
| | | <td> |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2015-2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | --> |
| | | <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> |
| | |
| | | |
| | | <properties> |
| | | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| | | <doclint>none</doclint> |
| | | </properties> |
| | | |
| | | <dependencies> |
| | |
| | | <license.output.dir>${project.build.directory}/${project.build.finalName}/WEB-INF/legal-notices</license.output.dir> |
| | | <opendj.server.module.name>opendj-server-legacy</opendj.server.module.name> |
| | | <opendj.jars.folder>opendj-jars</opendj.jars.folder> |
| | | <doclint>none</doclint> |
| | | </properties> |
| | | |
| | | <dependencies> |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2011-2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | --> |
| | | <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> |
| | |
| | | </plugins> |
| | | </reporting> |
| | | <properties> |
| | | <doclint>none</doclint> |
| | | </properties> |
| | | </project> |
| | |
| | | * |
| | | * Copyright 2009-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.forgerock.opendj.examples; |
| | |
| | | * Main method. |
| | | * |
| | | * @param args |
| | | * The command line arguments: [--load-balancer <mode>] listen address, listen port, |
| | | * The command line arguments: [--load-balancer <mode>] listen address, listen port, |
| | | * remote address1, remote port1, remote address2, remote port2, |
| | | * ... |
| | | */ |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2015-2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | --> |
| | | <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> |
| | |
| | | |
| | | <properties> |
| | | <mavenVersion>3.0.4</mavenVersion> |
| | | <doclint>none</doclint> |
| | | </properties> |
| | | <dependencies> |
| | | <dependency> |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2015 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.maven; |
| | | |
| | |
| | | * also include the X-SCHEMA-FILE extension to indicate the source schema file. |
| | | * <p> |
| | | * There is a single goal that generates the base schema. |
| | | * <p> |
| | | */ |
| | | @Mojo(name = "concat", defaultPhase = LifecyclePhase.GENERATE_SOURCES) |
| | | public final class ConcatSchemaMojo extends AbstractMojo { |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.maven; |
| | | |
| | |
| | | * places depending on whether the plugin is executing for the core config or an |
| | | * extension: |
| | | * <table border="1"> |
| | | * <caption>Resource locations by execution context</caption> |
| | | * <tr> |
| | | * <th></th> |
| | | * <th>Location</th> |
| | | * </tr> |
| | | * <tr> |
| | | * <th align="left">XSLT stylesheets</th> |
| | | * <th>XSLT stylesheets</th> |
| | | * <td>Internal: /config/stylesheets</td> |
| | | * </tr> |
| | | * <tr> |
| | | * <th align="left">XML core definitions</th> |
| | | * <th>XML core definitions</th> |
| | | * <td>Internal: /config/xml</td> |
| | | * </tr> |
| | | * <tr> |
| | | * <th align="left">XML extension definitions</th> |
| | | * <th>XML extension definitions</th> |
| | | * <td>${basedir}/src/main/java</td> |
| | | * </tr> |
| | | * <tr> |
| | | * <th align="left">Generated Java APIs</th> |
| | | * <th>Generated Java APIs</th> |
| | | * <td>${project.build.directory}/generated-sources/config</td> |
| | | * </tr> |
| | | * <tr> |
| | | * <th align="left">Generated I18N messages</th> |
| | | * <th>Generated I18N messages</th> |
| | | * <td>${project.build.outputDirectory}/config/messages</td> |
| | | * </tr> |
| | | * <tr> |
| | | * <th align="left">Generated profiles</th> |
| | | * <th>Generated profiles</th> |
| | | * <td>${project.build.outputDirectory}/config/profiles/${profile}</td> |
| | | * </tr> |
| | | * <tr> |
| | | * <th align="left">Generated manifest</th> |
| | | * <th>Generated manifest</th> |
| | | * <td>${project.build.outputDirectory}/META-INF/services/org.forgerock.opendj. |
| | | * config.AbstractManagedObjectDefinition</td> |
| | | * </tr> |
| | |
| | | |
| | | Copyright 2008-2009 Sun Microsystems, Inc. |
| | | Portions Copyright 2014-2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | ! --> |
| | | <xsl:stylesheet version="1.0" xmlns:adm="http://opendj.forgerock.org/admin" |
| | | xmlns:admpp="http://opendj.forgerock.org/admin-preprocessor" |
| | |
| | | <xsl:with-param name="content" |
| | | select="concat('Determines whether the ', $ufn,' exists.
', |
| | | '
', |
| | | '@return Returns <true> if the ', $ufn,' exists.
', |
| | | '@return Returns <code>true</code> if the ', $ufn,' exists.
', |
| | | '@throws ConcurrentModificationException
', |
| | | ' If this ', $this-ufn, ' has been removed from the server by another client.
', |
| | | '@throws LdapException
', |
| | |
| | | ' An optional collection in which to place any ', |
| | | '{@link PropertyException}s that occurred whilst ', |
| | | 'attempting to determine the default values of the ', $ufn, |
| | | '. This argument can be <code>null<code>.
', |
| | | '. This argument can be <code>null</code>.
', |
| | | '@return Returns a new ', $ufn,' configuration instance.
')" /> |
| | | </xsl:call-template> |
| | | <xsl:value-of |
| | |
| | | ' An optional collection in which to place any ', |
| | | '{@link PropertyException}s that occurred whilst ', |
| | | 'attempting to determine the default values of the ', $ufn, |
| | | '. This argument can be <code>null<code>.
', |
| | | '. This argument can be <code>null</code>.
', |
| | | '@return Returns a new ', $ufn,' configuration instance.
', |
| | | '@throws IllegalManagedObjectNameException
', |
| | | ' If the name of the new ', $ufn,' is invalid.
')" /> |
| | |
| | | ' An optional collection in which to place any ', |
| | | '{@link PropertyException}s that occurred whilst ', |
| | | 'attempting to determine the default values of the ', $ufn, |
| | | '. This argument can be <code>null<code>.
', |
| | | '. This argument can be <code>null</code>.
', |
| | | '@return Returns a new ', $ufn,' configuration instance.
')" /> |
| | | </xsl:call-template> |
| | | <xsl:value-of |
| | |
| | | |
| | | Copyright 2007-2008 Sun Microsystems, Inc. |
| | | Portions Copyright 2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | ! --> |
| | | <xsl:stylesheet version="1.0" xmlns:adm="http://opendj.forgerock.org/admin" |
| | | xmlns:admpp="http://opendj.forgerock.org/admin-preprocessor" |
| | |
| | | select="concat(' /**
', |
| | | ' * Determines whether the ', $ufn,' exists.
', |
| | | ' *
', |
| | | ' * @return Returns <true> if the ', $ufn,' exists.
', |
| | | ' * @return Returns <code>true</code> if the ', $ufn,' exists.
', |
| | | ' */
')" /> |
| | | <xsl:value-of |
| | | select="concat(' boolean has', |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | ! --> |
| | | <adm:managed-object name="http-basic-authorization-mechanism" plural-name="http-basic-authorization-mechanisms" |
| | | extends="http-authorization-mechanism" package="org.forgerock.opendj.server.config" xmlns:adm="http://opendj.forgerock.org/admin" |
| | |
| | | </adm:property> |
| | | |
| | | <adm:property name="identity-mapper" mandatory="true"> |
| | | <adm:synopsis>> |
| | | <adm:synopsis> |
| | | Specifies the name of the identity mapper used to get the user's entry corresponding to the user-id |
| | | provided in |
| | | the HTTP authentication header. |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | ! --> |
| | | <adm:managed-object abstract="true" name="http-oauth2-authorization-mechanism" plural-name="http-oauth2-authorization-mechanisms" |
| | | extends="http-authorization-mechanism" package="org.forgerock.opendj.server.config" xmlns:adm="http://opendj.forgerock.org/admin" |
| | |
| | | </adm:property> |
| | | |
| | | <adm:property name="identity-mapper" mandatory="true"> |
| | | <adm:synopsis>> |
| | | <adm:synopsis> |
| | | Specifies the name of the identity mapper to use in conjunction with the authzid-json-pointer |
| | | to get the |
| | | user corresponding to the acccess-token. |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2011-2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | ! --> |
| | | <adm:managed-object name="ldap-pass-through-authentication-policy" |
| | | plural-name="ldap-pass-through-authentication-policies" extends="authentication-policy" |
| | |
| | | filter-template to "(samAccountName=%s)". |
| | | |
| | | You can also use the filter to restrict search results. |
| | | For example: "(&(uid=%s)(objectclass=student))" |
| | | For example, an LDAP AND filter combining "(uid=%s)" and "(objectclass=student)". |
| | | </adm:description> |
| | | <adm:default-behavior> |
| | | <adm:undefined/> |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2014-2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | --> |
| | | <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> |
| | |
| | | </description> |
| | | <packaging>jar</packaging> |
| | | <properties> |
| | | <doclint>none</doclint> |
| | | </properties> |
| | | <dependencies> |
| | | <dependency> |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.openidm.accountchange; |
| | | |
| | |
| | | * <li>If interval is set to zero, then the change is sent immediately to OpenIDM using a HTTP POST request</li> |
| | | * <li>If interval is strictly superior to zero, then the change is stored locally (currently in a JE database). |
| | | * At each interval period of time, the changes which are stored locally are read and sent to OpenIDM using |
| | | * a HTTP POST request></li> |
| | | * a HTTP POST request></li> |
| | | * </ul> |
| | | * <p> |
| | | * The communication to OpenIDM can be done in one of three ways: |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.openidm.accountchange; |
| | | |
| | |
| | | * Fast request queue implementation on top of Berkley DB Java Edition. |
| | | * The queue uses the canonalised dn for key and store only |
| | | * the last password change for each dn. |
| | | * <p/> |
| | | */ |
| | | @ThreadSafe |
| | | public class PersistedQueue { |
| | |
| | | |
| | | /** |
| | | * Pushes element to the queue. |
| | | * <p/> |
| | | * <p> |
| | | * The entries are sorted in natural order and not in order of time when |
| | | * they were added. |
| | | * |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2012-2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | --> |
| | | <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> |
| | |
| | | org.forgerock.opendj.*;provide:=true, |
| | | org.forgerock.json.*;provide:=true |
| | | </opendj.osgi.import.additional> |
| | | <doclint>none</doclint> |
| | | </properties> |
| | | |
| | | |
| | |
| | | * information: "Portions copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.rest2ldap; |
| | | |
| | |
| | | * Two types of DN template are supported: {@link #compile(String) absolute/relative} or {@link #compileRelative(String) |
| | | * relative}. The table below shows how DN templates will be resolved to DNs when the template parameter "subdomain" |
| | | * has the value "www" and the current routing state references the DN "dc=example,dc=com": |
| | | * <p> |
| | | * <table> |
| | | * <tr><th>DN Template</th><th>{@link #compile(String)}</th><th>{@link #compileRelative(String)}</th></tr> |
| | | * <tr><td>dc=www</td><td>dc=www</td><td>dc=www,dc=example,dc=com</td></tr> |
| | |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.rest2ldap; |
| | | |
| | |
| | | * instance by calling {@link #rest2Ldap} passing in a list of {@link Resource resources} which together define |
| | | * the data model being exposed by the gateway. Call {@link #newRequestHandlerFor(String)} in order to obtain |
| | | * a request handler for a specific resource. The methods in this class can be categorized as follows: |
| | | * <p/> |
| | | * <p> |
| | | * Creating Rest2Ldap gateways: |
| | | * <ul> |
| | | * <li>{@link #rest2Ldap} - creates a gateway for a given set of resources</li> |
| | | * <li>{@link #newRequestHandlerFor} - obtains a request handler for the specified endpoint resource.</li> |
| | | * </ul> |
| | | * <p/> |
| | | * <p> |
| | | * Defining resource types, e.g. users, groups, devices, etc: |
| | | * <ul> |
| | | * <li>{@link #resource} - creates a resource having a fluent API for defining additional characteristics |
| | | * such as the resource's inheritance, sub-resources, and properties</li> |
| | | * </ul> |
| | | * <p/> |
| | | * <p> |
| | | * Defining a resource's sub-resources. A sub-resource is a resource which is subordinate to another resource. Or, to |
| | | * put it another way, sub-resources define parent child relationships where the life-cycle of a child resource is |
| | | * constrained by the life-cycle of the parent: deleting the parent implies that all children are deleted as well. An |
| | |
| | | * top-level entry points into REST APIs. |
| | | * </li> |
| | | * </ul> |
| | | * <p/> |
| | | * <p> |
| | | * Defining a resource's properties: |
| | | * <ul> |
| | | * <li>{@link #resourceType} - defines a property whose JSON value will be the name of the resource, e.g. "user"</li> |
| | |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2017 Rosie Applications, Inc. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.rest2ldap; |
| | | |
| | |
| | | |
| | | /** |
| | | * Parses Rest2Ldap configuration options. The JSON configuration must have the following format: |
| | | * <p> |
| | | * <pre> |
| | | * { |
| | | * "readOnUpdatePolicy": "controls", |
| | |
| | | |
| | | /** |
| | | * Parses a list of Rest2Ldap resource definitions. The JSON configuration must have the following format: |
| | | * <p> |
| | | * <pre> |
| | | * "top": { |
| | | * "isAbstract": true, |
| | |
| | | * information: "Portions copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.rest2ldap.authz; |
| | | |
| | |
| | | * @param searchScope |
| | | * {@link SearchScope} of the search request performed to find the user's DN. |
| | | * @param filterTemplate |
| | | * Filter of the search request (i.e: (&(email=%s)(objectClass=inetOrgPerson)) where the first %s will be |
| | | * Filter of the search request (i.e: (&(email=%s)(objectClass=inetOrgPerson)) where the first %s will be |
| | | * replaced by the user's provided authentication-id. |
| | | * @return a new search then bind {@link AuthenticationStrategy} |
| | | * @throws NullPointerException |
| | |
| | | * information: "Portions copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.rest2ldap.authz; |
| | | |
| | |
| | | |
| | | /** |
| | | * Creates a new {@link AccessTokenResolver} as defined in the RFC-7662. |
| | | * <p> |
| | | * @see <a href="https://tools.ietf.org/html/rfc7662">RFC-7662</a> |
| | | * |
| | | * @param httpClient |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.rest2ldap.authz; |
| | | |
| | |
| | | |
| | | /** |
| | | * An {@link AccessTokenResolver} which is RFC 7662 compliant. |
| | | * <p> |
| | | * @see <a href="https://tools.ietf.org/html/rfc7662">RFC-7662</a> |
| | | */ |
| | | final class Rfc7662AccessTokenResolver implements AccessTokenResolver { |
| | |
| | | * information: "Portions copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.rest2ldap.schema; |
| | | |
| | |
| | | * patterns for matching against JSON pointers. Patterns are JSON pointers where "*" represents zero or more |
| | | * characters in a single path element, and "**" represents any number of path elements. For example: |
| | | * |
| | | * <table valign="top"> |
| | | * <table> |
| | | * <caption>JSON pointer pattern matching examples</caption> |
| | | * <tr><th>Pattern</th><th>Matches</th><th>Doesn't match</th></tr> |
| | | * <tr><td>/aaa/bbb/ccc</td><td>/aaa/bbb/ccc</td><td>/aaa/bbb/ccc/ddd<br/>/aaa/bbb/cccc</td></tr> |
| | | * <tr><td>/aaa/b*/ccc</td><td>/aaa/bbb/ccc<br/>/aaa/bxx/ccc</td><td>/aaa/xxx/ccc<br/>/aaa/bbb</td></tr> |
| | | * <tr><td>/aaa/**/ddd</td><td>/aaa/ddd<br/>/aaa/xxx/yyy/ddd</td><td>/aaa/bbb/ccc</td></tr> |
| | | * <tr><td>/aaa/**</td><td>/aaa<br/>/aaa/bbb<br/>/aaa/bbb/ccc<br/></td><td>/aa</td></tr> |
| | | * <tr><td>/aaa/bbb/ccc</td><td>/aaa/bbb/ccc</td><td>/aaa/bbb/ccc/ddd<br>/aaa/bbb/cccc</td></tr> |
| | | * <tr><td>/aaa/b*/ccc</td><td>/aaa/bbb/ccc<br>/aaa/bxx/ccc</td><td>/aaa/xxx/ccc<br>/aaa/bbb</td></tr> |
| | | * <tr><td>/aaa/**/ddd</td><td>/aaa/ddd<br>/aaa/xxx/yyy/ddd</td><td>/aaa/bbb/ccc</td></tr> |
| | | * <tr><td>/aaa/**</td><td>/aaa<br>/aaa/bbb<br>/aaa/bbb/ccc<br></td><td>/aa</td></tr> |
| | | * </table> |
| | | */ |
| | | @SuppressWarnings("unchecked") |
| | |
| | | |
| | | <juel.version>2.2.7</juel.version> |
| | | |
| | | <doclint>none</doclint> |
| | | <opendmk.lib.dir>${basedir}/opendmk</opendmk.lib.dir> |
| | | </properties> |
| | | |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.forgerock.opendj.server.embedded; |
| | | |
| | |
| | | * Example reading configuration: |
| | | * <pre> |
| | | * try(ManagementContext config = server.getConfiguration()) { |
| | | * List<String> syncProviders = config.getRootConfiguration().listSynchronizationProviders(); |
| | | * List<String> syncProviders = config.getRootConfiguration().listSynchronizationProviders(); |
| | | * System.out.println("sync providers=" + syncProviders); |
| | | * } |
| | | * </pre> |
| | |
| | | * |
| | | * Copyright 2007-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2012-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.admin.ads; |
| | | |
| | |
| | | /** |
| | | * Method called to unregister a server in the ADS. Note that the server's |
| | | * instance key-pair public-key certificate entry (created in |
| | | * <tt>registerServer()</tt>) is left untouched. |
| | | * <code>registerServer()</code>) is left untouched. |
| | | * |
| | | * @param serverProperties |
| | | * the properties of the server. |
| | |
| | | * |
| | | * Copyright 2008-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.guitools.controlpanel.browser; |
| | | |
| | |
| | | /** |
| | | * Find a child node matching a given DN. |
| | | * |
| | | * result >= 0 result is the index of the node matching childDn. |
| | | * result < 0 -(result + 1) is the index at which the new node must be |
| | | * result >= 0 result is the index of the node matching childDn. |
| | | * result < 0 -(result + 1) is the index at which the new node must be |
| | | * inserted. |
| | | * @param parent the parent node of the node that is being searched. |
| | | * @param childDn the DN of the entry that is being searched. |
| | |
| | | * |
| | | * Copyright 2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.quicksetup; |
| | | |
| | |
| | | /** DN of the schema object. */ |
| | | public static final DN SCHEMA_DN = DN.valueOf("cn=schema", Schema.getCoreSchema()); |
| | | |
| | | /** DN of legacy replication changes base DN for backwards compatibility with OpenDJ <= 2.6.x. */ |
| | | /** DN of legacy replication changes base DN for backwards compatibility with OpenDJ <= 2.6.x. */ |
| | | public static final DN REPLICATION_CHANGES_DN = DN.valueOf("dc=replicationChanges", Schema.getCoreSchema()); |
| | | |
| | | /** The cli java system property. */ |
| | |
| | | * |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.quicksetup.ui; |
| | | |
| | |
| | | LDIF_PATH, |
| | | /** The value associated with this is a String. */ |
| | | NUMBER_ENTRIES, |
| | | /** The value associated with this is a Map<String, String>. */ |
| | | /** The value associated with this is a Map<String, String>. */ |
| | | REMOTE_REPLICATION_PORT, |
| | | /** The value associated with this is a Map<String, Boolean>. */ |
| | | /** The value associated with this is a Map<String, Boolean>. */ |
| | | REMOTE_REPLICATION_SECURE, |
| | | /** The value associated with this is a String. */ |
| | | REMOTE_SERVER_DN, |
| | |
| | | * |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.quicksetup.ui; |
| | | |
| | |
| | | |
| | | /** |
| | | * This class is responsible for doing the following: |
| | | * <p> |
| | | * <ul> |
| | | * <li>Check whether we are installing or uninstalling.</li> |
| | | * <li>Performs all the checks and validation of the data provided by the user |
| | |
| | | * |
| | | * Copyright 2008-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.quicksetup.util; |
| | | |
| | |
| | | /** |
| | | * This class is used to read the standard error and standard output of the |
| | | * Stop process. |
| | | * <p/> |
| | | * <p> |
| | | * When a new log message is found notifies the |
| | | * UninstallProgressUpdateListeners of it. If an error occurs it also |
| | | * notifies the listeners. |
| | |
| | | * |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.quicksetup.util; |
| | | |
| | |
| | | |
| | | /** |
| | | * Returns the HTML representation of a plain text string which is obtained |
| | | * by converting some special characters (like '<') into its equivalent |
| | | * by converting some special characters (like '<') into its equivalent |
| | | * escaped HTML representation. |
| | | * |
| | | * @param rawString the String from which we want to obtain the HTML |
| | |
| | | /** |
| | | * Returns the HTML representation for a given text. without adding any kind |
| | | * of font or style elements. Just escapes the problematic characters |
| | | * (like '<') and transform the break lines into '\n' characters. |
| | | * (like '<') and transform the break lines into '\n' characters. |
| | | * |
| | | * @param text the source text from which we want to get the HTML |
| | | * representation |
| | |
| | | * |
| | | * Copyright 2007-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.admin.doc; |
| | | |
| | |
| | | * |
| | | * Properties: |
| | | * GenerationDir - The directory where the doc is generated |
| | | * (default is /var/tmp/[CONFIG_GUIDE_DIR>]) |
| | | * (default is /var/tmp/[CONFIG_GUIDE_DIR>]) |
| | | * LdapMapping - Presence means that the LDAP mapping section is to be |
| | | * generated (default is no) |
| | | * OpenDJWiki - The URL of the OpenDJ Wiki |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * This method may not throw any exceptions. If any problems are encountered, |
| | | * then they may be logged but the closure should progress as completely as |
| | | * possible. |
| | | * <p> |
| | | */ |
| | | public abstract void finalizeBackend(); |
| | | |
| | |
| | | * |
| | | * Copyright 2006-2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * <p> |
| | | * It will be called as final step of <code>finalizeBackend()</code>, |
| | | * so subclasses might override it. |
| | | * </p> |
| | | */ |
| | | public void closeBackend() |
| | | { |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.opends.server.authorization.dseecompat; |
| | |
| | | * This method is used to possibly negate the result of a simple bind rule |
| | | * evaluation. If the boolean is true than the result is negated. |
| | | * @param v The enumeration result of the simple bind rule evaluation. |
| | | * @param negate If true the result should be negated (TRUE->FALSE, FALSE->TRUE). |
| | | * @param negate If true the result should be negated (TRUE->FALSE, FALSE->TRUE). |
| | | * @return A possibly negated enumeration result. |
| | | */ |
| | | public static EnumEvalResult negateIfNeeded(EnumEvalResult v, boolean negate) { |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.backends; |
| | | |
| | |
| | | * <code>changeNumber</code> attribute value is set from the content of |
| | | * ChangeNumberIndexDB.</li> |
| | | * </ul> |
| | | * <h3>Searches flow</h3> |
| | | * <h2>Searches flow</h2> |
| | | * <p> |
| | | * Here is the flow of searches within the changelog backend APIs: |
| | | * <ul> |
| | |
| | | * (once, single threaded),</li> |
| | | * <li> |
| | | * {@link ChangelogBackend#search(SearchOperation)} (once, single threaded)</li> |
| | | * <li>{@link ChangelogBackend#notify*EntryAdded()} (multiple times, multi |
| | | * <li>{@code notify*EntryAdded()} (multiple times, multi |
| | | * threaded)</li> |
| | | * </ol> |
| | | * </li> |
| | |
| | | * <li>{@link ChangelogBackend#registerPersistentSearch(PersistentSearch)} |
| | | * (once, single threaded)</li> |
| | | * <li> |
| | | * {@link ChangelogBackend#notify*EntryAdded()} (multiple times, multi |
| | | * {@code notify*EntryAdded()} (multiple times, multi |
| | | * threaded)</li> |
| | | * </ol> |
| | | * </li> |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2006-2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | |
| | |
| | | * Java Edition as the repository for storing entry and index information. |
| | | * <BR><BR> |
| | | * |
| | | * <H3>On-disk Representation</H3> |
| | | * <H2>On-disk Representation</H2> |
| | | * <P> |
| | | * First it is important to understand JE (Java Edition) terminology. A JE |
| | | * database environment has similarities to a database in the relational |
| | |
| | | * dc_example_dc_com_telephoneNumber.substring |
| | | * dc_example_dc_com_uid.equality |
| | | * </pre> |
| | | * <H4>Database Relocation</H4> |
| | | * <H3>Database Relocation</H3> |
| | | * <P> |
| | | * The data is stored in a format which is independent of system architecture, |
| | | * and is also independent of file system location because it contains no |
| | | * pathnames. The backend, and its backups, can be copied, moved and restored |
| | | * to a different location, within the same system or a different system. |
| | | * <P> |
| | | * <H4>The Entry ID</H4> |
| | | * <H3>The Entry ID</H3> |
| | | * <P> |
| | | * Each entry to be stored in the backend is assigned a 64-bit integer |
| | | * identifier called the entry ID. The first entry to be created is entry ID 1, |
| | |
| | | * <P> |
| | | * Currently, IDs of deleted entries are not reused. The use of a 64-bit |
| | | * integer means it is implausible that the entry ID space will be exhausted. |
| | | * <P> |
| | | * <P> |
| | | * <H4>The entry database (id2entry)</H4> |
| | | * <H3>The entry database (id2entry)</H3> |
| | | * <P> |
| | | * Entries are stored in the id2entry database. The key to the database is |
| | | * the entry ID, and the value is an ASN.1 encoding of the entry contents. |
| | |
| | | * assigned entry ID by reading the last key value in the entry database. |
| | | * <P> |
| | | * The format of the entry on disk is described by the following ASN.1. |
| | | * <P> |
| | | * <pre> |
| | | * DatabaseEntry ::= [APPLICATION 0] IMPLICIT SEQUENCE { |
| | | * uncompressedSize INTEGER, -- A zero value means not compressed. |
| | |
| | | * The ASN1 types have application tags to allow for future extensions. |
| | | * The types may be extended with additional fields where this makes sense, |
| | | * or additional types may be defined. |
| | | * <P> |
| | | * <H5>The entry count record</H5> |
| | | * <H4>The entry count record</H4> |
| | | * <P> |
| | | * Previous versions of Directory Server provide the current number of entries |
| | | * stored in the backend. JE does not maintain database record counts, |
| | |
| | | * For this reason the backend maintains its own count of the number of |
| | | * entries in the entry database, storing this count in the special record |
| | | * whose key is entry ID zero. |
| | | * <P> |
| | | * <P> |
| | | * <H4>The DN database (dn2id)</H4> |
| | | * <H3>The DN database (dn2id)</H3> |
| | | * <P> |
| | | * Although each entry's DN is stored in the entry database, we need to be |
| | | * able to retrieve entries by DN. The dn2id database key is the normalized |
| | |
| | | * At first, it may seem strange that user.1100 comes after user.1000 but it |
| | | * becomes clear when considering the values in reverse byte order, since |
| | | * 0011.resu is indeed greater than 0001.resu. |
| | | * <P> |
| | | * <H4>Index Databases</H4> |
| | | * <H3>Index Databases</H3> |
| | | * <P> |
| | | * Index databases are used to efficiently process search requests. The system |
| | | * indexes, id2children and id2subtree, are dedicated to processing one-level |
| | | * and subtree search scope respectively. Then there are configurable |
| | | * attribute indexes to process components of a search filter. Each index |
| | | * record maps a key to an Entry ID List. |
| | | * <P> |
| | | * <P> |
| | | * <H5>Entry ID List</H5> |
| | | * <H4>Entry ID List</H4> |
| | | * <P> |
| | | * An entry ID list is a set of entry IDs, arranged in order of ID. On disk, |
| | | * the list is a concatenation of the 8-byte entry ID values, where the first |
| | | * ID is the lowest. The number of IDs in the list can be obtained by dividing |
| | | * the total number of bytes by eight. |
| | | * <P> |
| | | * <P> |
| | | * <H5>Index Entry Limit</H5> |
| | | * <H4>Index Entry Limit</H4> |
| | | * <P> |
| | | * In some cases, the number of entries indexed by a given key is so large |
| | | * that the cost of maintaining the list during entry updates outweighs the |
| | |
| | | * a configurable entry limit. Whenever a list reaches the entry limit, it is |
| | | * replaced with a zero length value to indicate that the list is no longer |
| | | * maintained. |
| | | * <P> |
| | | * <P> |
| | | * <H5>Children Index (id2children)</H5> |
| | | * <H4>Children Index (id2children)</H4> |
| | | * <P> |
| | | * The children index is a system index which maps the ID of any non-leaf entry |
| | | * to entry IDs of the immediate children of the entry. This index is used to |
| | | * get the set of entries within the scope of a one-level search. |
| | | * <P> |
| | | * <P> |
| | | * <H5>Subtree Index (id2subtree)</H5> |
| | | * <H4>Subtree Index (id2subtree)</H4> |
| | | * <P> |
| | | * The subtree index is a system index which maps the ID of any non-leaf entry |
| | | * to entry IDs of all descendants of the entry. This index is used to get the |
| | | * set of entries within the scope of a subtree search. |
| | | * <P> |
| | | * <P> |
| | | * <H5>Attribute Equality Index</H5> |
| | | * <H4>Attribute Equality Index</H4> |
| | | * <P> |
| | | * An attribute equality index maps the value of an attribute to entry IDs of |
| | | * all entries containing that attribute value. The database key is the |
| | | * attribute value after it has been normalized by the equality matching rule |
| | | * for that attribute. This index is used to get the set of entries matching |
| | | * an equality filter. |
| | | * <P> |
| | | * <P> |
| | | * <H5>Attribute Presence Index</H5> |
| | | * <H4>Attribute Presence Index</H4> |
| | | * <P> |
| | | * An attribute presence index contains a single record which has entry IDs |
| | | * of all entries containing a value of the attribute. This index is used to get |
| | | * the set of entries matching an attribute presence filter. |
| | | * <P> |
| | | * <P> |
| | | * <H5>Attribute Substring Index</H5> |
| | | * <H4>Attribute Substring Index</H4> |
| | | * <P> |
| | | * An attribute substring index maps a substring of an attribute value to entry |
| | | * IDs of all entries containing that substring in one or more of its values of |
| | |
| | | * indexed by the keys ABC BCD CDE DE E. To find entries containing a short |
| | | * substring such as DE, iterate through all keys with prefix DE. To find |
| | | * entries containing a longer substring such as BCDE, read keys BCD and CDE. |
| | | * <P> |
| | | * <P> |
| | | * <H5>Attribute Ordering Index</H5> |
| | | * <H4>Attribute Ordering Index</H4> |
| | | * <P> |
| | | * An attribute ordering index is similar to an equality index in that it maps |
| | | * the value of an attribute to entry IDs of all entries containing that |
| | |
| | | * |
| | | * Copyright 2006-2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2014-2015 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.backends.pluggable; |
| | | |
| | |
| | | * Compares this object with the specified object for order. Returns a |
| | | * negative integer, zero, or a positive integer as this object is less |
| | | * than, equal to, or greater than the specified object.<p> |
| | | * <p/> |
| | | * |
| | | * @param that the Object to be compared. |
| | | * @return a negative integer, zero, or a positive integer as this object |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.opends.server.backends.pluggable.spi; |
| | |
| | | * <li>Reading the key or value will return {@code null}.</li> |
| | | * <li>Deleting the current element is not supported, {@link UnsupportedOperationException} will be thrown.</li> |
| | | * </ul> |
| | | * </p> |
| | | * |
| | | * @param <K> Type of the simulated record's key |
| | | * @param <V> Type of the simulated record's value |
| | |
| | | |
| | | /** |
| | | * Examines the provided result and logs a message if appropriate. |
| | | * <p> |
| | | * <ul> |
| | | * <li>If the result code is anything other than {@code SUCCESS}, then it will log an error message.</li> |
| | | * <li>If the operation was successful but admin action is required, then it will log a warning message.</li> |
| | |
| | | * |
| | | * Copyright 2006-2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2013-2015 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | * conjunction with the persistent search control, as defined in |
| | | * draft-ietf-ldapext-psearch. |
| | | * <p> |
| | | * It is a different type from {@link ChangeOperationType} to enforce type |
| | | * It is a different type from {@link org.opends.server.util.ChangeOperationType} to enforce type |
| | | * safety, despite mirroring it completely. |
| | | */ |
| | | public enum PersistentSearchChangeType |
| | |
| | | * |
| | | * Copyright 2006-2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.core; |
| | | |
| | |
| | | * <p> |
| | | * Implementation note: a separate map is kept for local backends in order to avoid filtering the backends map |
| | | * each time local backends are requested. |
| | | * <p> |
| | | */ |
| | | private static class Registry |
| | | { |
| | |
| | | /** |
| | | * Class to manage java.util.logging to slf4j bridge. |
| | | * Main purpose of this class is to adapt the j.u.l log level when a debug/error log publisher change is detected. |
| | | * <p> |
| | | * @ThreadSafe |
| | | */ |
| | | private static class JulToSlf4jLogManager |
| | |
| | | * |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.core; |
| | | |
| | |
| | | * Note that this version of the constructor should only be used for testing purposes when the tests should be |
| | | * evaluated with a fixed time rather than the actual current time. For all other purposes, the other constructor |
| | | * should be used. |
| | | * </p> |
| | | * |
| | | * @param policy The password policy associated with the state. |
| | | * @param userEntry The entry with the user account. |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.discovery; |
| | | |
| | |
| | | * <dt>dc=example,dc=com |
| | | * <dd>unsharded parent naming context replicated across all servers.<br> |
| | | * Contains data common to all partitions, such as ACIs, groups, etc. |
| | | * <dt>ou=people,dc=example,dc=com< |
| | | * <dd>sharded naming context whose content (the users) is split up according to some function, e.g. |
| | | * <dt>ou=people,dc=example,dc=com * <dd>sharded naming context whose content (the users) is split up according to some function, e.g. |
| | | * consistent hashing. |
| | | * </dl> |
| | | * |
| | |
| | | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
| | | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| | | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.opends.server.extensions; |
| | |
| | | * call the hashpw method with a random salt, like this: |
| | | * <p> |
| | | * <code> |
| | | * String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); <br /> |
| | | * String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); <br> |
| | | * </code> |
| | | * <p> |
| | | * To check whether a plaintext password matches one that has been |
| | | * hashed previously, use the checkpw method: |
| | | * <p> |
| | | * <code> |
| | | * if (BCrypt.checkpw(candidate_password, stored_hash))<br /> |
| | | * System.out.println("It matches");<br /> |
| | | * else<br /> |
| | | * System.out.println("It does not match");<br /> |
| | | * if (BCrypt.checkpw(candidate_password, stored_hash))<br> |
| | | * System.out.println("It matches");<br> |
| | | * else<br> |
| | | * System.out.println("It does not match");<br> |
| | | * </code> |
| | | * <p> |
| | | * The gensalt() method takes an optional parameter (log_rounds) |
| | | * that determines the computational complexity of the hashing: |
| | | * <p> |
| | | * <code> |
| | | * String strong_salt = BCrypt.gensalt(10)<br /> |
| | | * String stronger_salt = BCrypt.gensalt(12)<br /> |
| | | * String strong_salt = BCrypt.gensalt(10)<br> |
| | | * String stronger_salt = BCrypt.gensalt(12)<br> |
| | | * </code> |
| | | * <p> |
| | | * The amount of work increases exponentially (2**log_rounds), so |
| | |
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | * See the License for the specific language governing permissions and |
| | | * limitations under the License. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.extensions; |
| | | |
| | |
| | | * into the Public Domain. |
| | | * <p> |
| | | * This class is immutable and thread-safe. |
| | | * </p> |
| | | * |
| | | * <p> |
| | | * Note this class was originally in the |
| | | * <code>org.apache.commons.codec.digest</code> package, but was moved into |
| | | * <code>org.opends.server.extensions</code> for convenience. |
| | | * </p> |
| | | * |
| | | * @version $Id$ |
| | | * @since 1.7 |
| | |
| | | * Note this class was originally in the |
| | | * <code>org.apache.commons.codec.digest</code> package, but was moved into an |
| | | * inner class here for convenience. It is <b>not</b> compatible with Base64. |
| | | * </p> |
| | | * |
| | | * @version $Id$ |
| | | * @since 1.7 |
| | |
| | | * <p> |
| | | * This is hard-coded to true for now because a reject on full policy does not |
| | | * seem to have a valid use case. |
| | | * </p> |
| | | */ |
| | | private final boolean isBlocking = true; |
| | | |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Portions Copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.loggers; |
| | | |
| | |
| | | * The request info to log |
| | | * @see <a href="http://www.w3.org/TR/WD-logfile.html">W3C's Extended Log File |
| | | * Format</a> |
| | | * @see <a href= |
| | | * "http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/ |
| | | * Library/IIS/676400bc-8969-4aa7-851a-9319490a9bbb.mspx?mfr=true"> |
| | | * @see <a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/676400bc-8969-4aa7-851a-9319490a9bbb.mspx?mfr=true"> |
| | | * Microsoft's W3C Extended Log File Format (IIS 6.0)</a> |
| | | */ |
| | | public void logRequestInfo(HTTPRequestInfo requestInfo) |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.protocols.http; |
| | | |
| | |
| | | * Map containing the total number of requests per HTTP methods. |
| | | * <p> |
| | | * key: HTTP method => value: number of requests for that method. |
| | | * </p> |
| | | * Not using a ConcurrentMap implementation here because the keys are static. |
| | | * The keys are static because they need to be listed in the schema which is |
| | | * static. |
| | |
| | | * <p> |
| | | * key: HTTP method => value: total execution time for requests using that |
| | | * method. |
| | | * </p> |
| | | * Not using a ConcurrentMap implementation here because the keys are static. |
| | | * The keys are static because they need to be listed in the schema which is |
| | | * static. |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2013 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.protocols.http; |
| | | |
| | |
| | | * Use |
| | | * <code>curl "http://localhost:8080/users?_queryFilter=true&_prettyPrint=true" |
| | | * --trace-ascii output.txt</code> to trace the client-server communication. |
| | | * </p> |
| | | */ |
| | | @SuppressWarnings("rawtypes") |
| | | final class HTTPStatsProbe extends HttpProbe.Adapter |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.protocols.http; |
| | | |
| | |
| | | import org.forgerock.i18n.LocalizableMessage; |
| | | |
| | | /** |
| | | * Thrown to indicate that an {@link HttpApplication} was unable to start. A {@code LocalizedHttpApplicationException} |
| | | * Thrown to indicate that an {@link org.forgerock.http.HttpApplication} was unable to start. A {@code LocalizedHttpApplicationException} |
| | | * contains a localized error message which may be used to provide the user with detailed diagnosis information. The |
| | | * localized message can be retrieved using the {@link #getMessageObject} method. |
| | | */ |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.protocols.http.authz; |
| | | |
| | |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | /** |
| | | * Creates {@link HttpAuthorizationMechanism} performing the authentication/authorization of incoming {@link Request}. |
| | | * Creates {@link HttpAuthorizationMechanism} performing the authentication/authorization of incoming {@link org.forgerock.http.protocol.Request}. |
| | | */ |
| | | public final class HttpAuthorizationMechanismFactory |
| | | { |
| | |
| | | * |
| | | * Copyright 2006-2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.protocols.jmx; |
| | | |
| | |
| | | * <p> |
| | | * This class implements <code>RMIServerSocketFactory</code> over the Secure |
| | | * Sockets Layer (SSL) or Transport Layer Security (TLS) protocols. |
| | | * </p> |
| | | */ |
| | | public class DirectoryRMIServerSocketFactory implements |
| | | RMIServerSocketFactory |
| | |
| | | * <p> |
| | | * Returns <code>true</code> if client authentication is required on SSL |
| | | * connections accepted by server sockets created by this factory. |
| | | * </p> |
| | | * |
| | | * @return <code>true</code> if client authentication is required |
| | | * |
| | |
| | | /** |
| | | * <p> |
| | | * Indicates whether some other object is "equal to" this one. |
| | | * </p> |
| | | * |
| | | * <p> |
| | | * Two <code>CacaoRMIServerSocketFactory</code> objects are equal if they |
| | | * have been constructed with the same SSL socket configuration parameters. |
| | | * </p> |
| | | * |
| | | * <p> |
| | | * A subclass should override this method (as well as {@link #hashCode()}) |
| | | * if it adds instance state that affects equality. |
| | | * </p> |
| | | * |
| | | * @param obj the reference object with which to compare. |
| | | * |
| | |
| | | * |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.replication.common; |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * Returns a copy of this ServerState's content as a Map of serverId => CSN. |
| | | * Returns a copy of this ServerState's content as a Map of serverId => CSN. |
| | | * |
| | | * @return a copy of this ServerState's content as a Map of serverId => CSN. |
| | | * @return a copy of this ServerState's content as a Map of serverId => CSN. |
| | | */ |
| | | public Map<Integer, CSN> getServerIdToCSNMap() |
| | | { |
| | |
| | | * |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.replication.plugin; |
| | | |
| | |
| | | * preOperation plugin, that is called just before committing into the DB. |
| | | * </li> |
| | | * </ul> |
| | | * </p> |
| | | * |
| | | * @param modifyOperation |
| | | * the modification. |
| | |
| | | * |
| | | * Copyright 2008-2009 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2015 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.replication.protocol; |
| | | |
| | |
| | | * This message is used by DS to confirm a RS he wants to connect to him (open |
| | | * a session): |
| | | * Handshake sequence between DS and RS is like this: |
| | | * DS --- ServerStartMsg ---> RS |
| | | * DS <--- ReplServerStartMsg --- RS |
| | | * DS --- StartSessionMsg ---> RS |
| | | * DS <--- TopologyMsg --- RS |
| | | * DS --- ServerStartMsg ---> RS |
| | | * DS <--- ReplServerStartMsg --- RS |
| | | * DS --- StartSessionMsg ---> RS |
| | | * DS <--- TopologyMsg --- RS |
| | | * |
| | | * This message contains: |
| | | * - status: the status we are entering the topology with |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.replication.server; |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * Returns the Map of domainBaseDN => generationId. |
| | | * Returns the Map of domainBaseDN => generationId. |
| | | * |
| | | * @return a Map of domainBaseDN => generationId |
| | | * @return a Map of domainBaseDN => generationId |
| | | */ |
| | | public Map<DN, Long> getDomainToGenerationId() |
| | | { |
| | |
| | | } |
| | | |
| | | /** |
| | | * Returns the Map of domainBaseDN => List<serverId>. |
| | | * Returns the Map of domainBaseDN => List<serverId>. |
| | | * |
| | | * @return a Map of domainBaseDN => List<serverId>. |
| | | * @return a Map of domainBaseDN => List<serverId>. |
| | | */ |
| | | public Map<DN, Set<Integer>> getDomainToServerIds() |
| | | { |
| | |
| | | |
| | | /** |
| | | * Indicates whether the last update message returned by |
| | | * {@link #getNextMessage()} was re-read from the changelog DB (catch-up |
| | | * {@code getNextMessage()} was re-read from the changelog DB (catch-up |
| | | * path) rather than taken from the in-memory queue. |
| | | * <p> |
| | | * Must only be called from the consumer thread calling |
| | | * {@link #getNextMessage()}. |
| | | * {@code getNextMessage()}. |
| | | * |
| | | * @return true if the last returned update message came from the late queue |
| | | */ |
| | |
| | | * |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2012-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.replication.server; |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * Returns <tt>true</tt> if this MsgQueue contains no UpdateMsg. |
| | | * Returns <code>true</code> if this MsgQueue contains no UpdateMsg. |
| | | * |
| | | * @return <tt>true</tt> if this MsgQueue contains no UpdateMsg. |
| | | * @return <code>true</code> if this MsgQueue contains no UpdateMsg. |
| | | */ |
| | | public boolean isEmpty() |
| | | { |
| | |
| | | } |
| | | |
| | | /** |
| | | * Returns <tt>true</tt> if this map contains an UpdateMsg |
| | | * Returns <code>true</code> if this map contains an UpdateMsg |
| | | * with the same CSN as the given UpdateMsg. |
| | | * |
| | | * @param msg UpdateMsg whose presence in this queue is to be tested. |
| | | * |
| | | * @return <tt>true</tt> if this map contains an UpdateMsg |
| | | * @return <code>true</code> if this map contains an UpdateMsg |
| | | * with the same CSN as the given UpdateMsg. |
| | | */ |
| | | public boolean contains(UpdateMsg msg) |
| | |
| | | * RS2 and wants to acquire the lock on the domain (here) but cannot as RS1 |
| | | * connect thread already has it</li> |
| | | * </ol> |
| | | * => Deadlock: 4 threads are locked. |
| | | * => Deadlock: 4 threads are locked. |
| | | * <p> |
| | | * To prevent threads locking in such situation, the listen threads here will |
| | | * both timeout trying to acquire the lock. The random time for the timeout |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.replication.server.changelog.api; |
| | | |
| | |
| | | * |
| | | * @param baseDN |
| | | * the replication domain baseDN |
| | | * @return a new ServerState object holding the {serverId => oldest CSN} |
| | | * @return a new ServerState object holding the {serverId => oldest CSN} |
| | | * mapping. If a replica DB is empty or closed, the oldest CSN will be |
| | | * null for that replica. The caller owns the generated ServerState. |
| | | */ |
| | |
| | | * |
| | | * @param baseDN |
| | | * the replication domain baseDN |
| | | * @return a new ServerState object holding the {serverId => newest CSN} Map. |
| | | * @return a new ServerState object holding the {serverId => newest CSN} Map. |
| | | * If a replica DB is empty or closed, the newest CSN will be null for |
| | | * that replica. The caller owns the generated ServerState. |
| | | */ |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.replication.server.changelog.file; |
| | | |
| | |
| | | /** |
| | | * Returns whether a domain is enabled for the external changelog. |
| | | * |
| | | * @FunctionalInterface |
| | | */ |
| | | public class ECLEnabledDomainPredicate |
| | | { |
| | |
| | | * <p> |
| | | * When this method is called, a request for initialization is sent to the |
| | | * remote source server requesting initialization. |
| | | * <p> |
| | | * |
| | | * @param source The server-id of the source from which to initialize. |
| | | * The source can be discovered using the |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | |
| | |
| | | * replication code that works on the Directory Server side. |
| | | * <br> |
| | | * Developers planning to use the Replication Service should |
| | | * subClass the <A> HREF="ReplicationDomain.html"><B>ReplicationDomain</B></A> |
| | | * subClass the <A HREF="ReplicationDomain.html"><B>ReplicationDomain</B></A> |
| | | * class |
| | | */ |
| | | @org.opends.server.types.PublicAPI( |
| | |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2011-2016 ForgeRock AS. |
| | | * Portions copyright 2013-2014 Manuel Gaupp |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | |
| | | * <dt>SMR |
| | | * <dd>Syntax Matching Rule |
| | | * </dl> |
| | | * </p> |
| | | */ |
| | | public class SchemaConstants |
| | | { |
| | |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | |
| | | |
| | | /** |
| | | * The schema. |
| | | * <p> |
| | | * @GuardedBy("exclusiveLock") |
| | | */ |
| | | private volatile Schema schema; |
| | |
| | | * |
| | | * Copyright 2009-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.tools; |
| | | |
| | |
| | | * <p> |
| | | * This method can never return null because it will receive |
| | | * UnknownHostException before and then throw LDAPConnectionException. |
| | | * </p> |
| | | * |
| | | * @return a new {@link Socket}. |
| | | * @throws LDAPConnectionException |
| | |
| | | * <p> |
| | | * This method can never return null because it will receive |
| | | * UnknownHostException before and then throw LDAPConnectionException. |
| | | * </p> |
| | | * |
| | | * @return a new {@link Socket}. |
| | | * @throws LDAPConnectionException |
| | |
| | | * |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2011-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.types; |
| | | |
| | |
| | | /** |
| | | * Get the minimum depth of the subtree specification. |
| | | * |
| | | * @return Returns the minimum depth (<=0 indicates unlimited |
| | | * @return Returns the minimum depth (<=0 indicates unlimited |
| | | * depth). |
| | | */ |
| | | public int getMinimumDepth() |
| | |
| | | * |
| | | * Copyright 2006-2010 Sun Microsystems, Inc. |
| | | * Portions Copyright 2010-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.util; |
| | | |
| | |
| | | /** |
| | | * The maximum depth to which nested search filters will be processed. This |
| | | * can prevent stack overflow errors from filters that look like |
| | | * "(&(&(&(&(&(&(&(&(&....". |
| | | * "(&(&(&(&(&(&(&(&(&....". |
| | | */ |
| | | public static final int MAX_NESTED_FILTER_DEPTH = 100; |
| | | |
| | |
| | | * } |
| | | * </pre> |
| | | * |
| | | * </p> |
| | | * |
| | | * @param <T> |
| | | * the generic type of the passed in Iterator and for the returned |
| | |
| | | * |
| | | * Copyright 2008-2009 Sun Microsystems, Inc. |
| | | * Portions Copyright 2012-2014 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.snmp; |
| | | |
| | |
| | | private MBeanServer server; |
| | | |
| | | /** |
| | | * cn=monitor Mapping Class SNMP->MBean. |
| | | * cn=monitor Mapping Class SNMP->MBean. |
| | | */ |
| | | private SNMPMonitor monitor; |
| | | |
| | |
| | | * |
| | | * Copyright 2008 Sun Microsystems, Inc. |
| | | * Portions copyright 2013-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.snmp; |
| | | |
| | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | * @param address |
| | | * @return the list of communities |
| | | */ |
| | | public Enumeration getTrapCommunities(InetAddress address) { |
| | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | * @param address |
| | | * @return an empty enumeration |
| | | */ |
| | | public Enumeration getInformCommunities(InetAddress address) { |
| | |
| | | * |
| | | * Copyright 2008 Sun Microsystems, Inc. |
| | | * Portions Copyright 2014-2016 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | package org.opends.server.snmp; |
| | | |
| | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | * @param user |
| | | * @param contextName |
| | | * @param securityLevel |
| | | */ |
| | | public boolean checkReadPermission(String user, String contextName, |
| | | int securityLevel) { |
| | |
| | | |
| | | /** |
| | | * Check the incoming security level of the request. |
| | | * @param securityLevel |
| | | * @return true if the securityLevel is appropriated, else return false |
| | | */ |
| | | private boolean checkSecurityLevel(int securityLevel) { |
| | |
| | | information: "Portions Copyright [year] [name of copyright owner]". |
| | | |
| | | Copyright 2013-2016 ForgeRock AS. |
| | | Portions Copyright 2026 3A Systems, LLC. |
| | | --> |
| | | <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> |
| | |
| | | <!-- Product information properties --> |
| | | <patchFixIds /> |
| | | <isDebugBuild>false</isDebugBuild> |
| | | <doclint>none</doclint> |
| | | </properties> |
| | | <dependencies> |
| | | <dependency> |
| | |
| | | * |
| | | * Copyright 2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2013 ForgeRock AS. |
| | | * Portions Copyright 2026 3A Systems, LLC. |
| | | */ |
| | | |
| | | package org.forgerock.opendj.server.core; |
| | |
| | | /** |
| | | * Class used to define dynamic typed attachments on {@link AttachmentHolder} |
| | | * instances. Storing attachment values in {@link AttachmentHolder} has the |
| | | * advantage of the <tt>Attachment</tt> value being typed when compared to Map |
| | | * advantage of the <code>Attachment</code> value being typed when compared to Map |
| | | * storage: |
| | | * |
| | | * @param <T> |
| | |
| | | <product.locales>ca_ES,es,de,fr,ja,ko,pl,zh_CN,zh_TW</product.locales> |
| | | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| | | <localized.jars.classifier>i18n</localized.jars.classifier> |
| | | <commons.version>3.1.1</commons.version> |
| | | <commons.version>3.1.2-SNAPSHOT</commons.version> |
| | | <freemarker.version>2.3.34</freemarker.version> |
| | | <metrics-core.version>4.2.30</metrics-core.version> |
| | | <bc.fips.version>2.1.2</bc.fips.version> |
| | |
| | | <docGuideRefUrl>https://doc.openidentityplatform.org/opendj/man-pages/</docGuideRefUrl> |
| | | <docGuideAdminUrl>https://doc.openidentityplatform.org/opendj/admin-guide/</docGuideAdminUrl> |
| | | |
| | | <!-- Javadoc doclint level (single source of truth, inherited by every module). |
| | | all,-missing = run all checks (html/syntax/reference/accessibility) but do |
| | | not require missing comments/tags. Read by maven-javadoc-plugin via -Ddoclint. --> |
| | | <doclint>all,-missing</doclint> |
| | | |
| | | </properties> |
| | | |
| | | <inceptionYear>2011</inceptionYear> |
| | |
| | | </execution> |
| | | </executions> |
| | | <configuration> |
| | | <doclint>none</doclint> |
| | | <doclint>${doclint}</doclint> |
| | | <notimestamp>true</notimestamp> |
| | | <failOnWarnings>true</failOnWarnings> |
| | | </configuration> |
| | | </plugin> |
| | | <plugin> |
| | |
| | | <plugin> |
| | | <groupId>org.apache.maven.plugins</groupId> |
| | | <artifactId>maven-javadoc-plugin</artifactId> |
| | | <version>3.11.2</version> |
| | | <version>3.12.0</version> |
| | | </plugin> |
| | | <plugin> |
| | | <groupId>org.apache.maven.plugins</groupId> |
| | |
| | | <plugin> |
| | | <groupId>org.openidentityplatform.commons.i18n-framework</groupId> |
| | | <artifactId>maven-plugin</artifactId> |
| | | <version>${commons.version}</version> |
| | | </plugin> |
| | | |
| | | <plugin> |