Directory Services 7.4.3

Unique Attribute Plugin

The Unique Attribute Plugin enforces constraints on the value of an attribute within a portion of the directory.

The values for each attribute must be unique within each base DN specified in the plugin’s base-dn property or within all of the server’s public naming contexts if no base DNs were specified.

Parent

The Unique Attribute Plugin object inherits from Plugin.

Unique Attribute Plugin properties

You can use configuration expressions to set property values at startup time. For details, see Property value substitution.

Basic Properties Advanced Properties

base-dn
enabled
type

invoke-for-internal-operations
java-class
plugin-type

Basic properties

Use the --advanced option to access advanced properties.

base-dn

Synopsis

Specifies a base DN within which the attribute must be unique.

Default value

The plug-in uses the server’s public naming contexts in the searches.

Allowed values

A valid DN.

Multi-valued

Yes

Required

No

Admin action required

None

Advanced

No

Read-only

No

enabled

Synopsis

Indicates whether the plug-in is enabled for use.

Default value

None

Allowed values

true

false

Multi-valued

No

Required

Yes

Admin action required

None

Advanced

No

Read-only

No

type

Synopsis

Specifies the attribute types to check for value uniqueness. Each attribute value must be unique for all specified attribute types. For example, if both uid and cn types are specified, then each uid and cn value must be unique for all uid and cn attributes under the specified base DN(s).

Default value

None

Allowed values

The name of an attribute type defined in the LDAP schema.

Multi-valued

Yes

Required

Yes

Admin action required

None

Advanced

No

Read-only

No

Advanced properties

Use the --advanced option to access advanced properties.

invoke-for-internal-operations

Synopsis

Indicates whether the plug-in should be invoked for internal operations.

Description

Any plug-in that can be invoked for internal operations must ensure that it does not create any new internal operations that can cause the same plug-in to be re-invoked.

Default value

true

Allowed values

true

false

Multi-valued

No

Required

No

Admin action required

None

Advanced

Yes

Read-only

No

java-class

Synopsis

Specifies the fully-qualified name of the Java class that provides the plug-in implementation.

Default value

org.opends.server.plugins.UniqueAttributePlugin

Allowed values

A Java class that extends or implements:

  • org.opends.server.api.plugin.DirectoryServerPlugin

Multi-valued

No

Required

Yes

Admin action required

None

Advanced

Yes

Read-only

No

plugin-type

Synopsis

Specifies the set of plug-in types for the plug-in, which specifies the times at which the plug-in is invoked.

Default value

preoperationadd

preoperationmodify

preoperationmodifydn

postoperationadd

postoperationmodify

postoperationmodifydn

postsynchronizationadd

postsynchronizationmodify

postsynchronizationmodifydn

Allowed values

  • initialization: Invoked at the initialization of the directory server.

  • intermediateresponse: Invoked before sending an intermediate response message to the client.

  • ldifimport: Invoked for each entry read during an LDIF import.

  • ldifimportbegin: Invoked at the beginning of an LDIF import session.

  • ldifimportend: Invoked at the end of an LDIF import session.

  • postcommitadd: Invoked after completing post-commit processing for an add operation.

  • postcommitdelete: Invoked after completing post-commit processing for a delete operation.

  • postcommitmodify: Invoked after completing post-commit processing for a modify operation.

  • postcommitmodifydn: Invoked after completing post-commit processing for a modify DN operation.

  • postconnect: Invoked whenever a new connection is established to the server.

  • postdisconnect: Invoked whenever an existing connection is terminated (by either the client or the server).

  • postoperationabandon: Invoked after completing the abandon processing.

  • postoperationadd: Invoked after completing the core add processing but before sending the response to the client.

  • postoperationbind: Invoked after completing the core bind processing but before sending the response to the client.

  • postoperationcompare: Invoked after completing the core compare processing but before sending the response to the client.

  • postoperationdelete: Invoked after completing the core delete processing but before sending the response to the client.

  • postoperationextended: Invoked after completing the core extended processing but before sending the response to the client.

  • postoperationmodify: Invoked after completing the core modify processing but before sending the response to the client.

  • postoperationmodifydn: Invoked after completing the core modify DN processing but before sending the response to the client.

  • postoperationsearch: Invoked after completing the core search processing but before sending the response to the client.

  • postoperationunbind: Invoked after completing the unbind processing.

  • postresponseadd: Invoked after sending the add response to the client.

  • postresponsebind: Invoked after sending the bind response to the client.

  • postresponsecompare: Invoked after sending the compare response to the client.

  • postresponsedelete: Invoked after sending the delete response to the client.

  • postresponseextended: Invoked after sending the extended response to the client.

  • postresponsemodify: Invoked after sending the modify response to the client.

  • postresponsemodifydn: Invoked after sending the modify DN response to the client.

  • postresponsesearch: Invoked after sending the search result done message to the client.

  • postsynchronizationadd: Invoked after completing post-synchronization processing for an add operation.

  • postsynchronizationdelete: Invoked after completing post-synchronization processing for a delete operation.

  • postsynchronizationmodify: Invoked after completing post-synchronization processing for a modify operation.

  • postsynchronizationmodifydn: Invoked after completing post-synchronization processing for a modify DN operation.

  • preoperationadd: Invoked prior to performing the core add processing.

  • preoperationbind: Invoked prior to performing the core bind processing.

  • preoperationcompare: Invoked prior to performing the core compare processing.

  • preoperationdelete: Invoked prior to performing the core delete processing.

  • preoperationextended: Invoked prior to performing the core extended processing.

  • preoperationmodify: Invoked prior to performing the core modify processing.

  • preoperationmodifydn: Invoked prior to performing the core modify DN processing.

  • preoperationsearch: Invoked prior to performing the core search processing.

  • preparseabandon: Invoked prior to parsing an abandon request.

  • preparseadd: Invoked prior to parsing an add request.

  • preparsebind: Invoked prior to parsing a bind request.

  • preparsecompare: Invoked prior to parsing a compare request.

  • preparsedelete: Invoked prior to parsing a delete request.

  • preparseextended: Invoked prior to parsing an extended request.

  • preparsemodify: Invoked prior to parsing a modify request.

  • preparsemodifydn: Invoked prior to parsing a modify DN request.

  • preparsesearch: Invoked prior to parsing a search request.

  • preparseunbind: Invoked prior to parsing an unbind request.

  • searchresultentry: Invoked before sending a search result entry to the client.

  • searchresultreference: Invoked before sending a search result reference to the client.

  • shutdown: Invoked during a graceful directory server shutdown.

  • startup: Invoked during the directory server startup process.

  • subordinatedelete: Invoked in the course of deleting a subordinate entry of a delete operation.

  • subordinatemodifydn: Invoked in the course of moving or renaming an entry subordinate to the target of a modify DN operation.

Multi-valued

Yes

Required

Yes

Admin action required

The object must be disabled and re-enabled for changes to take effect.

Advanced

Yes

Read-only

No