From 6e35118970c7af70eb0ac938859d794f7348d367 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 22 Feb 2013 14:04:33 +0100 Subject: Extracted LDAP specifics into subpackage --- .../com/c2kernel/lookup/ldap/LDAPAgentPath.java | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/main/java/com/c2kernel/lookup/ldap/LDAPAgentPath.java (limited to 'src/main/java/com/c2kernel/lookup/ldap/LDAPAgentPath.java') diff --git a/src/main/java/com/c2kernel/lookup/ldap/LDAPAgentPath.java b/src/main/java/com/c2kernel/lookup/ldap/LDAPAgentPath.java new file mode 100644 index 0000000..bae2d4f --- /dev/null +++ b/src/main/java/com/c2kernel/lookup/ldap/LDAPAgentPath.java @@ -0,0 +1,90 @@ +/* + * 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; + } +} -- cgit v1.2.3