summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/lookup/ldap/LDAPAgentPath.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/lookup/ldap/LDAPAgentPath.java')
-rw-r--r--src/main/java/com/c2kernel/lookup/ldap/LDAPAgentPath.java90
1 files changed, 90 insertions, 0 deletions
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;
+ }
+}