1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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;
}
}
|