Modifying Directory Entries
Modifying the attribute values of a directory entry
involves using the modifyAttributes() method of DirContext. One variant of this method takes
the name of a directory entry, a modification type, and an Attributes object that contains modified
Attribute objects; another variant
takes a name and an array of javax.naming.directory.ModificationItem
objects. A ModificationItem
encapsulates a modified Attribute
object and a modification type.
The only part of this operation that warrants much explanation
is the creation of modified Attribute objects. The javax.naming.directory.BasicAttributes and
javax.naming.directory.BasicAttribute
classes implement the Attributes
and Attribute interfaces,
respectively. These are the classes you’ll typically use to create
modified attribute values.
For example, let’s say we want to remove the phone number
"303 444 6633" from a user entry’s
"telephonenumber" attribute and
replace it with the new number "520 765 4321". In the following code, we create two BasicAttributes objects, newNumber and oldNumber, and use them in calls to modifyAttributes():
DirContext user ... ; // Created somewhere else in the program BasicAttribute newAttr = new BasicAttribute(); newAttr.add("telephonenumber", "520 765 4321"); BasicAttributes newNumber = new BasicAttributes(); newNumber.put(newAttr); BasicAttributes oldNumber = new BasicAttributes("telephonenumber", "303 444 6633"); user.modifyAttributes("", DirContext.REMOVE_ATTRIBUTE, oldNumber); ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access