/* * LDAPAgentPath.java * * Copyright (c) 2013, The CRISTAL Consortium. All rights reserved. * * CRISTAL kernel is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see: * http://www.gnu.org/licenses/ */ package com.c2kernel.lookup.ldap; import java.security.NoSuchAlgorithmException; import com.c2kernel.common.ObjectCannotBeUpdated; import com.c2kernel.lookup.AgentPath; import com.c2kernel.lookup.EntityPath; import com.c2kernel.lookup.InvalidAgentPathException; import com.c2kernel.lookup.InvalidEntityPathException; import com.c2kernel.process.Gateway; import com.novell.ldap.LDAPAttribute; import com.novell.ldap.LDAPAttributeSet; public class LDAPAgentPath extends AgentPath { /** * @param syskey * @param agentName * @throws InvalidAgentPathException * @throws InvalidEntityPathException */ public LDAPAgentPath(int syskey, String agentName) throws InvalidAgentPathException, InvalidEntityPathException { super(syskey, agentName); // TODO Auto-generated constructor stub } /** * @param syskey * @throws InvalidEntityPathException */ public LDAPAgentPath(int syskey) throws InvalidEntityPathException { super(syskey); // TODO Auto-generated constructor stub } /** * @param entity */ public LDAPAgentPath(EntityPath entity) { super(entity); // TODO Auto-generated constructor stub } @Override public LDAPAttributeSet createAttributeSet() throws ObjectCannotBeUpdated { LDAPAttributeSet attrs = new LDAPAttributeSet(); attrs.add(new LDAPAttribute("objectclass","cristalagent")); attrs.add(new LDAPAttribute("intsyskey",Integer.toString(mSysKey))); attrs.add(new LDAPAttribute("cn", getPath()[getPath().length-1])); if (mIOR != null) attrs.add(new LDAPAttribute("ior", Gateway.getORB().object_to_string(mIOR))); if (mAgentName!=null && mAgentName.length()>0) attrs.add(new LDAPAttribute("uid",mAgentName)); else throw new ObjectCannotBeUpdated("Cannot create agent. No userId specified", ""); if (mPassword!=null && mPassword.length()>0) try { attrs.add(new LDAPAttribute("userPassword",AgentPath.generateUserPassword(mPassword, "SHA"))); } catch (NoSuchAlgorithmException ex) { throw new ObjectCannotBeUpdated("Cryptographic libraries for password hashing not found.", ""); } else throw new ObjectCannotBeUpdated("Cannot create agent. No password given", ""); return attrs; } }