}
}
public boolean createUser(String username, String password, String firstname, String lastname)
{
InitialLdapContext ctx = null;
try
{
ctx = initialiseContext();
Attributes userAttribs = new BasicAttributes();
BasicAttribute userClass = new BasicAttribute(getObjectClassAttribute());
for (String objectClass : getUserObjectClasses())
{
userClass.add(objectClass);
}
userAttribs.put(userClass);
userAttribs.put(new BasicAttribute(getUserNameAttribute(), username));
userAttribs.put(new BasicAttribute(getUserPasswordAttribute(), password));
if (getFirstNameAttribute() != null && firstname != null)
{
userAttribs.put(new BasicAttribute(getFirstNameAttribute(), firstname));
}
if (getLastNameAttribute() != null && lastname != null)
{
userAttribs.put(new BasicAttribute(getLastNameAttribute(), lastname));
}
if (getFullNameAttribute() != null && firstname != null && lastname != null)
{
userAttribs.put(new BasicAttribute(getFullNameAttribute(), firstname + " " + lastname));
}
if (getEnabledAttribute() != null)
{
userAttribs.put(new BasicAttribute(getEnabledAttribute(), LDAP_BOOLEAN_TRUE));
}
String userDN = String.format("%s=%s,%s", getUserNameAttribute(), username, getUserContextDN() );
ctx.createSubcontext(userDN, userAttribs);
return true;
}
catch (NamingException ex)
{
throw new IdentityManagementException("Failed to create user", ex);
}
finally
{
if (ctx != null)
{
try
{
ctx.close();
}
catch (NamingException ex) {}
}
}
}