06 Nov, 2007
1 commit
-
extended operation handler. OpenDS Issue Number: 2563 git-svn-id: https://svn.forgerock.org/opendj/trunk@3414 41b1ffd8-f28e-4786-ab96-9950f0a78031
02 Nov, 2007
2 commits
-
OpenDS Issue Number: 2559 git-svn-id: https://svn.forgerock.org/opendj/trunk@3404 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
- Replace a couple of errant uses of SUBSTRINGS with SUBSTR. - Replace an errant "TOP" with "SUP top" in an object class definition. - Insert a missing space between the last attribute name and the closing parenthesis in the MAY list of an object class definition. git-svn-id: https://svn.forgerock.org/opendj/trunk@3402 41b1ffd8-f28e-4786-ab96-9950f0a78031
30 Oct, 2007
1 commit
-
Until now, the workflows were automatically configured-a wokflow was created for each base DN in the backends. When new suffixes were added or when a backend was added, the associated workflows were also created (and simillarly workflows were deleted as suffixes or backends were removed). With the manual mode, each and every workflow in the server must be defined explicitely in the configuration. By default, the server is running in automatic configuration mode. To have a server running with manual configuration mode one must set the attribute in cn=config: dn: cn=config ... ds-cfg-workflow-configuration-mode: auto|manual No attribute means "auto" mode. The workflow configuration consist of 3 parts: - the configuration of workfow elements - the configuration of workfows - the configuration of network groups The Workflow Elements - A workflow element is a basic task in a workflow. The workflow elements are organized in trees and the simplest tree is made of one element. For example, the workflow element that wraps a local backend is configured as follow: dn: ds-cfg-workflow-element-id=userRoot,cn=workflow elements,cn=config objectClass: top objectClass: ds-cfg-workflow-element objectClass: ds-cfg-local-backend-workflow-element ds-cfg-workflow-element-id: userRoot ds-cfg-enabled: true ds-cfg-java-class: org.opends.server.workflowelement.localbackend.LocalBackendWorkflowElement ds-cfg-backend: ds-cfg-backend-id=userRoot,cn=Backends,cn=config From an admin standpoint, the local backend workflow element is an aggregation of a single backend (attribute ds-cfg-backend). So we cannot disable/delete a backend as long as it is used by a local backend workflow element. The Workflows - A workflow is a chain of processing and it's targeting all the entries under a given baseDN. The processing is actually identified by the root node of the task tree described above. The configuration of a workflow looks like: dn: ds-cfg-workflow-id=userRoot,cn=workflows,cn=config objectClass: top objectClass: ds-cfg-workflow ds-cfg-workflow-id: userRoot ds-cfg-enabled: true ds-cfg-workflow-element: ds-cfg-workflow-element-id=userRoot,cn=workflow elements,cn=config ds-cfg-base-dn: dc=example,dc=com From an admin standpoint, the local workflow is an aggregation of a single elements (attribute ds-cfg-workflow-element). So we cannot disable/delete a workflow element as long as it is used by a local workflow. The Network Groups - A network group defines categories for client connection. The network group contains a set of workflows and each client operation is routed to one (or more) workflow(s). By default, the server create a default network group which contains all the workflows defined in the server. The default network group looks like: dn: ds-cfg-id=defaultNetworkGroup2,cn=network groups,cn=config objectClass: top objectClass: ds-cfg-network-group ds-cfg-id: defaultNetworkGroup2 ds-cfg-enabled: true ds-cfg-workflow: ds-cfg-workflow-id=adminRoot,cn=Workflows,cn=config ds-cfg-workflow: ds-cfg-workflow-id=ads-truststore,cn=Workflows,cn=config ds-cfg-workflow: ds-cfg-workflow-id=backup,cn=Workflows,cn=config ds-cfg-workflow: ds-cfg-workflow-id=config,cn=Workflows,cn=config ds-cfg-workflow: ds-cfg-workflow-id=monitor,cn=Workflows,cn=config ds-cfg-workflow: ds-cfg-workflow-id=schema,cn=Workflows,cn=config ds-cfg-workflow: ds-cfg-workflow-id=tasks,cn=Workflows,cn=config ds-cfg-workflow: ds-cfg-workflow-id=userRoot,cn=Workflows,cn=config From an admin standpoint, the network group is an aggregation of several workflows (attribute ds-cfg-workflow). So we cannot disable/delete a workflow as long as it is used by a network group. A unit test named WorkflowConfigurationTest tests the configuration of network groups, workflows and workflow elements. git-svn-id: https://svn.forgerock.org/opendj/trunk@3388 41b1ffd8-f28e-4786-ab96-9950f0a78031
23 Oct, 2007
1 commit
-
The following changes are aimed to include a new attribute in the backend monitor entry to provide the number or entries per base DN. This information is used by the status, status-panel, dsreplication and graphical setup to be able to display the number of entries under a given base DN even when there are several base DNs defined in the same database. The way the new attribute appears in the monitoring entry is: ldapsearch -w s -p 1389 -b cn=monitor ds-backend-id=userRoot ds-base-dn-entry-countdn: cn=userRoot Backend,cn=monitor ds-base-dn-entry-count: 0 dc=ta ds-base-dn-entry-count: 1 dc=ti ds-base-dn-entry-count: 1 dc=to I prefer this approach because in my opinion having the number of entries is more important that the suffix. Anyway I think the discussion around the structure of the value is not crucial as long as the value is easy to parse (which is the case). The new attribute is defined in the schema and the new OID assigned to it is 1.3.6.1.4.1.26027.1.1.434. In order to have a minimum impact on performances, the method backend.numSubordinates is only called when there are several base DNs defined in the database. git-svn-id: https://svn.forgerock.org/opendj/trunk@3361 41b1ffd8-f28e-4786-ab96-9950f0a78031
13 Oct, 2007
1 commit
-
CryptoManager Step 1 to factor a CryptoManager interface from the implementation. git-svn-id: https://svn.forgerock.org/opendj/trunk@3303 41b1ffd8-f28e-4786-ab96-9950f0a78031
10 Oct, 2007
2 commits
-
…, its preferred cipher and mac algorithms and the associated key lengths. git-svn-id: https://svn.forgerock.org/opendj/trunk@3290 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
Enable password storage schemes based on encryption now that issue 466 (CryptoManager) features are implemented. git-svn-id: https://svn.forgerock.org/opendj/trunk@3285 41b1ffd8-f28e-4786-ab96-9950f0a78031
09 Oct, 2007
1 commit
-
When importing a secret key entry from ADS into the crypto manager, if a symmetric key that can be decoded by this instance is not present then request it from another server using the Get Symmetric Key extended operation. Tested by configuring two servers to use 3DES password storage scheme in the default password policy, enabling replication between them and verifying that a user can bind with password to both instances. git-svn-id: https://svn.forgerock.org/opendj/trunk@3281 41b1ffd8-f28e-4786-ab96-9950f0a78031
02 Oct, 2007
1 commit
-
- Defines the schema for secret keys. - Keeps the crypto manager secret key cache up to date with secret keys published in ADS. git-svn-id: https://svn.forgerock.org/opendj/trunk@3238 41b1ffd8-f28e-4786-ab96-9950f0a78031
28 Sep, 2007
2 commits
-
Use two environment variables to know which is the JVM to be used by the scripts: OPENDS_JAVA_BIN and OPENDS_JAVA_HOME. When the setup creates the file lib/set-java-home it writes the contents of OPENDS_JAVA_HOME to it (instead of JAVA_HOME which was the previous behavior). Before these changes, the scripts used to look for JAVA_BIN, then JAVA_HOME and finally for the contents of the set-java-home file. The problem with this approach is that if the user required to specify JAVA_HOME or JAVA_BIN to an unsupported version of the JDK (because some other program in the machine had this requirement) the scripts of OpenDS could not run. Now the checks that we do to figure out the JVM are done in the following order: 1. Check if OPENDS_JAVA_BIN is defined in the environment. 2. Check if OPENDS_JAVA_HOME is defined in the environment. 3. Check if OPENDS_JAVA_HOME is defined in the lib/set-java-home file. 4. Check if JAVA_BIN is defined in the environment. 5. Check if JAVA_HOME is defined in the environment. 6. Check if we can figure out the java installation by executing "type java" (in UNIX environments). If any of the above checks is positive, we will try to use the JVM found. Extras: the uninstall script on UNIX now checks that we are using a JDK compatible with 1.5 and displays a user friendly message if it does not. git-svn-id: https://svn.forgerock.org/opendj/trunk@3235 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
…nd use it within the LDAP and JMX connection handlers to enforce their SSL/StartTLS settings. This feature will be re-used for other managed object definitions as the need arises. git-svn-id: https://svn.forgerock.org/opendj/trunk@3233 41b1ffd8-f28e-4786-ab96-9950f0a78031
27 Sep, 2007
2 commits
-
… constraints within components. This change adds support for defining arbitrary conditions which can be used to test properties and their values. Conditions can be used within aggregations to define 1) when a referenced managed object needs enabling and 2) when it is enabled. For example, the LDAP connection handler requires that its key manager provider and trust manager provider are enabled when it is enable and when either SSL or StartTLS are enabled. Conditions are also intended for use within the existing constraint/dependency support. For example, it should be possible to indicate that a property "min" is always less than or equal to a property "max", or that when "use-ssl" is set to true, any required SSL configuration related properties are also defined. This will be implemented in a subsequent change (this change just focuses on the work required to resolve issue 1449). This change adds support for the following conditions: * logical "not" * logical "and" * logical "or" * logical "implies" * contains - determines if a property contains a particular value * is-present - determines if a property has any values (incl. defaults) More will be added as required. git-svn-id: https://svn.forgerock.org/opendj/trunk@3229 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
As described in Neil's comments, stop-ds can now read arguments values on a properties file. git-svn-id: https://svn.forgerock.org/opendj/trunk@3222 41b1ffd8-f28e-4786-ab96-9950f0a78031
26 Sep, 2007
6 commits
-
allocations after the earlier refactoring to use a more consistent naming for our configuration properties. I have also updated the OID registry on our wiki to reflect these changes. git-svn-id: https://svn.forgerock.org/opendj/trunk@3221 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@3213 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@3212 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
object class and config definition rather than relying on the generic configuration. This makes it easier to use through dsconfig. git-svn-id: https://svn.forgerock.org/opendj/trunk@3211 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@3209 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
determine whether a given attribute is indexed in a specified manner, or that can be used to determine whether a specified filter is indexed. At present, all backends except the JE backend and the replication backend are considered always indexed for all operations. The JE backend is only considered indexed based on its index configuration. The replication backend is never considered indexed. Update the following components to make use of this new isIndexed capability: - The DSEE-compatible access control handler will now log a warning message at startup if it detects that there is no presence index for the aci attribute, which can make startup take a long time on a big database. - The group manager will now log a warning message at startup if any of the group implementation filters are unindexed, which can make startup take a long time on a big database. - The referential integrity plugin now requires that all of the attributes for which referential integrity is to be maintained must be configured with equality indexes. - The unique attribute plugin now requires that all of the attributes for which uniqueness is to be enforced must be configured with equality indexes. This commit also updates the LDIF backend so that it is possible to indicate via configuration whether its base DNs should be registered as public or private base DNs. The LDIF backend used as the admin root has been updated so that it is considered a private backend. The replication backend has also been updated so that it is considered a private backend. git-svn-id: https://svn.forgerock.org/opendj/trunk@3206 41b1ffd8-f28e-4786-ab96-9950f0a78031
25 Sep, 2007
5 commits
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@3205 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@3201 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
…end is always present. The adminRoot LDIF backend is initially populated with the admin container entries, except for the cn=Servers container. To avoid breaking the setup and dsreplication tools, I have changed things so that the absence of the cn=Servers container entry implies that the server is not yet configured as an ADS server. I have commented out code that is no longer applicable. git-svn-id: https://svn.forgerock.org/opendj/trunk@3199 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@3197 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@3187 41b1ffd8-f28e-4786-ab96-9950f0a78031
23 Sep, 2007
1 commit
-
memory, and all read operations will be served from memory, but the underlying data will be stored in an LDIF file on disk and any write operation will cause that LDIF file to be updated. This backend supports all major operations, including moving/renaming non-leaf entries with the modify DN operation, and also supports the subtree delete control and LDIF import and export operations. Backup and restore operations are not currently supported. git-svn-id: https://svn.forgerock.org/opendj/trunk@3160 41b1ffd8-f28e-4786-ab96-9950f0a78031
21 Sep, 2007
1 commit
-
…e not necessary in many cases where equality indexes are defined. Under load, heavy contention exists in the presence indexes and lock timeouts can occur. Fix for issue 2186 git-svn-id: https://svn.forgerock.org/opendj/trunk@3154 41b1ffd8-f28e-4786-ab96-9950f0a78031
20 Sep, 2007
3 commits
-
…version process replacing the upgrade script while the upgrade process is running on Windows. This code will compare the running version of the script with the new version to see whether or not the script actually needs replacing. If so the script is copied with an extension NEW. When the script starts it checks for the existence of upgrade.bat.NEW and if exists prints a message informing the user that they must replace the old version of the script with the new version before continuing. git-svn-id: https://svn.forgerock.org/opendj/trunk@3144 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
ds-cfg-plugin-order-post-synchronization-* rather than ds-cfg-plugin-order-synchronization-*. OpenDS Issue Number: 2308 git-svn-id: https://svn.forgerock.org/opendj/trunk@3136 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@3129 41b1ffd8-f28e-4786-ab96-9950f0a78031
19 Sep, 2007
3 commits
-
note that these bundles are not self contained and cannot be arbitrary moved outside of OpenDS distribution or installation location. git-svn-id: https://svn.forgerock.org/opendj/trunk@3121 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
JVM, including: - The total number of garbage collections (per memory pool) - The total duration of all garbage collections (per memory pool) - The averge duration for a garbage collection (per memory pool) - The duration of the most recent garbage collection (per memory pool) - The current size of each memory region - The size of each memory region after the last garbage collection git-svn-id: https://svn.forgerock.org/opendj/trunk@3120 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
…ands so that we have the behavior that we had before. So with this changes, in order to work in CLI mode the option --cli must be specified. git-svn-id: https://svn.forgerock.org/opendj/trunk@3112 41b1ffd8-f28e-4786-ab96-9950f0a78031
18 Sep, 2007
1 commit
-
…olean properties. This is useful in components such as the LDAP connection handler where the referenced key/trust manager must be enabled only if the connection handler is enabled and if it is using SSL. git-svn-id: https://svn.forgerock.org/opendj/trunk@3096 41b1ffd8-f28e-4786-ab96-9950f0a78031
17 Sep, 2007
1 commit
-
…arent of all other configuration definitions. This is analogous to the the "top" object class in LDAP. The principle use of the TopCfgDefn is to make it easier for applications to determine all the possible types of managed object the administration framework supports. The TopCfgDefn is not generated automatically from XML. Instead it is located in the org.opends.server.admin package together with the base client-side and server-side interfaces (ConfigurationClient and Configuration respectively). git-svn-id: https://svn.forgerock.org/opendj/trunk@3082 41b1ffd8-f28e-4786-ab96-9950f0a78031
15 Sep, 2007
1 commit
-
The strongly typed server-side APIs now retrieve and cache their property values during construction so that subsequent calls to property getters no longer have to repeatedly access the underlying ServerManagedObject. This avoids having to repeatedly perform hash-table look-ups in the ServerManagedObject and, in the case of single-valued properties, temporary construction of iterators. I have also modified the ServerManagedObject#getPropertyValues() method to return an UnmodifiableSortedSet rather than a defensive copy and updated the javadoc in the generated server-side getters to reflect that the returned set is unmodifiable. git-svn-id: https://svn.forgerock.org/opendj/trunk@3078 41b1ffd8-f28e-4786-ab96-9950f0a78031
14 Sep, 2007
4 commits
-
draft-findlay-ldap-groupofentries. Entries with the groupOfEntries object class should be treated in a manner that is virtually identical to entries with the groupOfNames object class (technically, groupOfNames does not allow zero-member groups, but the OpenDS implementation does allow this). OpenDS Issue Number: 2277 git-svn-id: https://svn.forgerock.org/opendj/trunk@3076 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@3063 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
…es like inherited default values and aggregation properties it is quite straightforward to encounter initialization dependency problems. For example: the global configuration will contain an aggregation property which references the default password policy. This aggregation definition is defined using a managed object path which, when decoded, contains a reference to the root configuration and its "password-policy" relation. This is what happens during initialization of the root configuration: 1) load the root configuration definition class and start constructing and registering its relation definitions 2) initialize the global configuration relation definition. This forces the JVM to load the global configuration definition 3) the global configuration contains an aggregation property definition which references a default password policy. Password policies are contained in the "password-policy" relation of the root configuration. Since the aggregation property definition references the password policy via a managed object path, decoding the path forces the root configuration definition to be loaded and its "password-policy" relation definition to be retrieved 4) the lookup of the "password-policy" relation definition fails because the root configuration has not finished initializing and the relation has not been constructed yet. The fix is to "delay" decoding of inter-component references such as these until all the associated classes are loaded and initialized. To that end, property definitions and their default behaviors now have a new method called "initialize()". In addition, each property definition and default behavior has been modified so that any managed object paths and property definitions that they depend upon are not decoded during construction. This is now performed by the initialize() method. The admin framework class loader provider has been modified so that it now performs this two-phase initialization: 1) load and instantiate each managed object definition class, forcing all property definitions and relation definitions to be constructed and registered 2) initialize each managed object definition instance: the instance invokes initialize() on each of its property definitions and default behaviors. This will force all inter-component references to be decoded and validated. A positive side-effect of this change is that any inter-component references which have not been specified properly in their XML definition will be flagged during server start-up, rather than on-demand. git-svn-id: https://svn.forgerock.org/opendj/trunk@3061 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
…e getter methods for each aggregation property. The first is a "default" getter of the form: String getXXX() SortedSet<String> getXXX() Where XXX is the name of the property. This getter follows the same pattern as all other property getters. In this case it returns a String (or set of Strings) containing the common name(s) of the referenced component(s). The second server-side getter is of the form: DN getXXXDN() SortedSet<DN> getXXXDNs() Where again XXX is the name of the property. This getter returns the distinguished name(s) associated with the referenced component(s). It is useful on the server-side where component implementations need to retrieve referenced implementations from a DirectoryServer table based on their DN. git-svn-id: https://svn.forgerock.org/opendj/trunk@3060 41b1ffd8-f28e-4786-ab96-9950f0a78031