From 2a324c450839410293c5d5e2c56dc291b4a98634 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 12 Jun 2014 19:59:32 +0200 Subject: Refactored LDAP into its own module. --- .../c2kernel/lookup/ldap/LDAPPropertyManager.java | 141 --------------------- 1 file changed, 141 deletions(-) delete mode 100644 src/main/java/com/c2kernel/lookup/ldap/LDAPPropertyManager.java (limited to 'src/main/java/com/c2kernel/lookup/ldap/LDAPPropertyManager.java') diff --git a/src/main/java/com/c2kernel/lookup/ldap/LDAPPropertyManager.java b/src/main/java/com/c2kernel/lookup/ldap/LDAPPropertyManager.java deleted file mode 100644 index 1b6e906..0000000 --- a/src/main/java/com/c2kernel/lookup/ldap/LDAPPropertyManager.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.c2kernel.lookup.ldap; - -import java.util.ArrayList; -import java.util.Enumeration; - -import com.c2kernel.common.ObjectCannotBeUpdated; -import com.c2kernel.common.ObjectNotFoundException; -import com.c2kernel.lookup.ItemPath; -import com.c2kernel.property.Property; -import com.c2kernel.utils.Logger; -import com.novell.ldap.LDAPAttribute; -import com.novell.ldap.LDAPEntry; - -/************************************************************************** - * - * $Revision: 1.3 $ - * $Date: 2006/03/03 13:52:21 $ - * - * Copyright (C) 2003 CERN - European Organization for Nuclear Research - * All rights reserved. - **************************************************************************/ - -public class LDAPPropertyManager { - /** - * - */ - protected LDAPLookup ldap; - private final LDAPAuthManager auth; - - public LDAPPropertyManager(LDAPLookup ldap, LDAPAuthManager auth) { - super(); - this.ldap = ldap; - this.auth = auth; - } - - /** - * @param thisItem - EntityPath of the subject entity - * @return - * @throws ObjectNotFoundException - */ - public boolean hasProperties(ItemPath thisItem) throws ObjectNotFoundException { - LDAPEntry entityEntry = LDAPLookupUtils.getEntry(auth.getAuthObject(), ldap.getFullDN(thisItem)); - return entityEntry.getAttribute("cristalprop") != null; - } - - /** - * @param thisItem - EntityPath of the subject entity - * @return array of Property - * @throws ObjectNotFoundException - */ - public String[] getPropertyNames(ItemPath thisItem) throws ObjectNotFoundException { - LDAPEntry entityEntry = LDAPLookupUtils.getEntry(auth.getAuthObject(), ldap.getFullDN(thisItem)); - ArrayList propbag = new ArrayList(); - LDAPAttribute props = entityEntry.getAttribute("cristalprop"); - for (Enumeration e = props.getStringValues(); e.hasMoreElements();) { - String thisProp = (String)e.nextElement(); - String thisName = thisProp.substring(0, thisProp.indexOf(':')); - if (thisName.startsWith("!") && thisName.length()>1) thisName = thisName.substring(1); - propbag.add(thisName); - } - - String[] retArr = new String[props.size()]; - return propbag.toArray(retArr); - } - - /** - * @param thisItem - EntityPath of the subject entity - * @param propName - the name of the property to retrieve - * @return The Property object - * @throws ObjectNotFoundException - */ - public Property getProperty(ItemPath thisItem, String name) throws ObjectNotFoundException { - LDAPEntry entityEntry = LDAPLookupUtils.getEntry(auth.getAuthObject(), ldap.getFullDN(thisItem)); - return getProperty(entityEntry, name); - } - - /** - * @param thisItem - EntityPath of the subject entity - * @param name - the property name to delete - * @throws ObjectNotFoundException - * @throws ObjectCannotBeUpdated - */ - public void deleteProperty(ItemPath thisItem, String name) throws ObjectNotFoundException, ObjectCannotBeUpdated { - LDAPEntry entityEntry = LDAPLookupUtils.getEntry(auth.getAuthObject(), ldap.getFullDN(thisItem)); - Property prop = getProperty(entityEntry, name); - Logger.msg(6, "LDAPLookupUtils.deleteProperty("+name+") - Deleting property"); - LDAPLookupUtils.removeAttributeValue(auth.getAuthObject(), entityEntry, "cristalprop", getPropertyAttrValue(prop)); - } - - private static String getPropertyAttrValue(Property prop) { - return (prop.isMutable()?"":"!")+prop.getName()+":"+prop.getValue(); - } - - /** - * @param thisItem - EntityPath of the subject entity - * @param prop - the property to store - * @throws ObjectNotFoundException - * @throws ObjectCannotBeUpdated - */ - public void setProperty(ItemPath thisItem, Property prop) throws ObjectNotFoundException, ObjectCannotBeUpdated { - LDAPEntry entityEntry = LDAPLookupUtils.getEntry(auth.getAuthObject(), ldap.getFullDN(thisItem)); - try { - Property oldProp = getProperty(entityEntry, prop.getName()); - Logger.msg(6, "LDAPLookupUtils.setProperty("+prop.getName()+") - Removing old value '"+oldProp.getValue()+"'"); - LDAPLookupUtils.removeAttributeValue(auth.getAuthObject(), entityEntry, "cristalprop", getPropertyAttrValue(oldProp)); - } catch (ObjectNotFoundException ex) { - Logger.msg(6, "LDAPLookupUtils.setProperty("+prop.getName()+") - creating new property."); - } - Logger.msg(6, "LDAPLookupUtils.setProperty("+prop.getName()+") - setting to '"+prop.getValue()+"'"); - LDAPLookupUtils.addAttributeValue(auth.getAuthObject(), entityEntry, "cristalprop", getPropertyAttrValue(prop)); - } - - public static Property getProperty(LDAPEntry myEntry, String propName) throws ObjectNotFoundException { - // delete existing props - LDAPAttribute props = myEntry.getAttribute("cristalprop"); - if (props == null) - throw new ObjectNotFoundException("Property "+propName+" does not exist", ""); - String propPrefix = propName+":"; - String roPropPrefix = "!"+propPrefix; - String val = null, name = null; boolean mutable = false; - for (Enumeration e = props.getStringValues(); name==null && e.hasMoreElements();) { - String attrVal = (String)e.nextElement(); - if (attrVal.toLowerCase().startsWith(propPrefix.toLowerCase())) { - name = attrVal.substring(0, propPrefix.length()-1); - val = attrVal.substring(propPrefix.length()); - mutable = true; break; - } - - if (attrVal.toLowerCase().startsWith(roPropPrefix.toLowerCase())) { - name = attrVal.substring(1, roPropPrefix.length()-1); - val = attrVal.substring(roPropPrefix.length()); - mutable = false; break; - } - } - if (name == null) - throw new ObjectNotFoundException("Property "+propName+" does not exist", ""); - Logger.msg(6, "Loaded "+(mutable?"":"Non-")+"Mutable Property: "+name+"="+val); - return new Property(name, val, mutable); - } - -} -- cgit v1.2.3