Java examples for javax.naming.directory:Attributes
Removes all values from the named LDAP attributes
/**// www . j a v a 2s . c o m * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2009 Sun Microsystems Inc. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://opensso.dev.java.net/public/CDDLv1.0.html or * opensso/legal/CDDLv1.0.txt * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at opensso/legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * $Id: LDAPUtils.java,v 1.2 2009-08-24 11:37:44 hubertlvg Exp $ * */ import java.util.ArrayList; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import javax.naming.Context; import javax.naming.NameNotFoundException; import javax.naming.NamingEnumeration; import javax.naming.NamingException; import javax.naming.directory.Attribute; import javax.naming.directory.Attributes; import javax.naming.directory.BasicAttribute; import javax.naming.directory.BasicAttributes; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; import javax.naming.directory.SearchControls; import javax.naming.directory.SearchResult; public class Main{ private static final Logger logger = Logger.getLogger(LDAPUtils.class .getName()); /** * Removes all values from the named attributes * * * * @param dn * String * @param names * String[] * */ public static void deleteAttributes(String dn, String[] names, DirContext ctx) { for (int i = 0; i < names.length; i++) { deleteAttribute(dn, names[i], ctx); } } /** * Removes the specific value from the named attribute * * @param ctx * DirContext * @param dn * String * @param name * String * @param value * String * @throws BackendException */ public static void deleteAttribute(String dn, String name, String value, DirContext ctx) throws BackendException { try { ctx.modifyAttributes(dn, DirContext.REMOVE_ATTRIBUTE, new BasicAttributes(name, value)); } catch (NamingException e) { throw new BackendException(e.getMessage()); } } /** * Removes all values from the named attribute * * @param ctx * DirContext * @param dn * String * @param name * String * */ public static void deleteAttribute(String dn, String name, DirContext ctx) { try { BasicAttributes basicAttributes = new BasicAttributes(); basicAttributes.put(new BasicAttribute(name)); ctx.modifyAttributes(dn, DirContext.REMOVE_ATTRIBUTE, basicAttributes); } catch (NamingException e) { logger.info("Name not found " + name); } } /** * Modifies multiple attributes. * * @param ctx * @param dn * @param map * @return status of modify attempt */ public static boolean modifyAttributes(DirContext ctx, String dn, HashMap map) throws NamingException { boolean modifyStatus = false; BasicAttributes bas = new BasicAttributes(); Set keys = map.keySet(); Iterator i = keys.iterator(); Object keyName = null; while (i.hasNext()) { keyName = i.next(); bas.put((String) keyName, (String) map.get(keyName)); } ctx.modifyAttributes(dn, DirContext.REPLACE_ATTRIBUTE, bas); modifyStatus = true; return modifyStatus; } }