Sun Java System Directory Server Enterprise Edition 6.3 Administration Guide

ProcedureTo Enforce Uniqueness of Another Attribute

The UID uniqueness plug-in can be used to enforce the uniqueness of any attribute. You must create a new instance of the plug-in by creating a new entry under cn=plugins,cn=config in the directory.

You cannot use DSCC to perform this task. Use the command line, as described in this procedure.

  1. Create a new plug-in.

    $ dsconf create-plugin -h host -p port -H lib-path -F init-func \
     -Y type plugin-name 

    plugin-name should be a short and descriptive name that includes the name of the attribute. For example, to create a plug-in for the uniqueness of the mail ID attribute, use this command:

    $ dsconf create-plugin -h host1 -p 1389 -H /opt/SUNWdsee/ds6/lib/ \
     -F NSUniqueAttr_Init -Y preoperation "mail uniqueness"
  2. Set the plug-in properties.

    $ dsconf set-plugin-prop -h host -p port plugin-name property:value

    For example, to set the properties for the mail uniqueness plug-in, :

    $ dsconf set-plugin-prop -h host1 -p 1389 "mail uniqueness" \
     desc:"Enforce unique attribute values..." version:6.0 \
     vendor:"Sun Microsystems, Inc." depends-on-type:database
  3. Enable the plug-in.

    $ dsconf enable-plugin -h host -p port plugin-name
  4. Specify the plug-in arguments.

    These arguments depend on how you want to determine the subtrees where uniqueness is enforced.

    • To define one or more subtrees according to their base DN, the first argument must be the name of the attribute that should have unique values. Subsequent arguments are the full DNs of the base entries of the subtrees.

      $ dsconf set-plugin-prop -h host -p port plugin-name argument:attribute-name \
       argument:subtreeBaseDN argument:subtreeBaseDN...
    • To add an argument to an existing list of arguments, use the following command:

      $ dsconf set-plugin-prop -h host -p port plugin-name argument+:argument-value
    • To define subtrees according to the object class of their base entries, the first argument must contain attribute=attribute-name which specifies the name of the attribute that should have unique values. The second argument must be the baseObjectClass that determines the base entry of subtrees where uniqueness is enforced. Optionally, you can specify an entryObjectClass in the third argument so that the plug-in enforces uniqueness only in operations that target entries with this object class.

      $ dsconf set-plugin-prop -h host -p port plugin-name argument:attribute=attribute-name \
       argument:markerObjectClass=baseObjectClass argument:requiredObjectClass=entryObjectClass

    In all plug-in arguments, no space can appear before or after the = sign.

  5. Restart the server for your changes to take effect.