Add a user to a group in Active Directory: LdapErr: DSID-0C090A85
Running this code results in a message that says (the names have been
obfuscated but the structure of the names is right):
Problem adding member: javax.naming.InvalidNameException:
CN=MyGroup,OU=VAP,OU=MyOU ,OU=Rights,OU=Groups,OU=Americas,DC=na,DC=msds,DC=rhi,DC=com:
[LDAP: error code 34 - 00000057: LdapErr: DSID-0C090A85, comment:
Error in attri
bute conversion operation, data 0, vece ];
I know the name exists and I can add members using VBScript.
Here is the JSP - does anyone see what I'm doing wrong?
Thanks.
<%@ page language="java" import="import
java.util.Hashtable,javax.naming.directory.*,javax.naming.*" %>
<%!
public void doit()
{
Hashtable env = new Hashtable();
String adminName = "CN=myaccount,OU=Blah Blah
Accounts,OU=Blah,DC=na,DC=msds,DC=rhi,DC=com";
String adminPassword = "mypassword";
String userName = "CN=Doe\\\\, John,OU=Users,OU=Field ,OU=Field
Accounts,OU=Some Field Accounts,DC=na,DC=msds,DC=rhi,DC=com";
String groupName =
"CN=MyGroup,OU=VAP,OU=MyOU ,OU=Rights,OU=Groups,OU=Americas,DC=na,DC=msds,DC=rhi,DC=com";
env.put
(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION,"simple");
env.put(Context.SECURITY_PRINCIPAL,adminName);
env.put(Context.SECURITY_CREDENTIALS,adminPassword);
env.put(Context.PROVIDER_URL, "ldap://myldaphost:myldapport");
try {
InitialDirContext ctx = new InitialDirContext(env);
ModificationItem[] mods = new ModificationItem[1];
mods[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE,
new BasicAttribute("member", userName));
ctx.modifyAttributes(groupName, mods);
ctx.close();
System.out.println("Added " + userName + " to " +
groupName);
}
catch (NamingException e) {
System.err.println("Problem adding member: " + e);
}
}
%>
<% doit(); %>
test