Hi All,
We are facing one problem while adding a DL into Active Directory.
We have to add a DL in the AD having special characters (like '/') in
the DN field. While trying to do it through JNDI, we are getting the
InvalidNameexception. We are using the following code to add the DL.
newCntxt.createSubcontext(DN, storeAttr);
Here is the exception trace,
25 Jun 2009 13:42:50,420 | [ERROR] | javax.naming.InvalidNameException:
"CN=vpim-group with/nomembers,ou=vpim,ou=Mail,ou=Applications,ou=US Firm
Wide,dc=apps2,dc=net": [LDAP: error code 34 - 00002073: NameErr:
DSID-030507EB, problem 2003 (BAD_ATT_SYNTAX), data 0, best match of:
'CN=vpim-group with/nomembers,ou=vpim,ou=Mail,ou=Applications,ou=US
Firm Wide,dc=apps2,dc=net'
remaining name '"CN=vpim-group
with/nomembers,ou=vpim,ou=Mail,ou=Applications,ou=US Firm
Wide,dc=apps2,dc=net"'
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2943)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2758)
at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(LdapCtx.java:774)
at
com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext(Componen
tDirContext.java:319)
at
com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(Par
tialCompositeDirContext.java:248)
at
javax.naming.directory.InitialDirContext.createSubcontext(InitialDirCont
ext.java:183)
at com.cisco.sasg.adtool.LDAPSync.getAttr(LDAPSync.java:895)
at com.cisco.sasg.adtool.LDAPSync.syncMember(LDAPSync.java:1063)
at com.cisco.sasg.adtool.CustomerAD.provisionVpim(CustomerAD.java:873)
at com.cisco.sasg.adtool.ADControl.provisionVPIM(ADControl.java:759)
at com.cisco.sasg.adtool.ADControl.provision(ADControl.java:545)
at com.cisco.sasg.adtool.ADControl.run(ADControl.java:170)
at java.lang.Thread.run(Thread.java:619)
We have already tried following two options, but still getting the same
exception.
Option1: To use CompositeName
Name composite = new CompositeName().add(DN);
newCntxt.createSubcontext(composite , storeAttr);
Option2: To use NameParser
NameParser ldapParser = newCntxt.getNameParser("");
Name compound = ldapParser.parse(DN);
newCntxt.createSubcontext(compound, storeAttr);
Any inputs will be highly appreciable.
Please let me know, if you needs any further information.
Regards,
Deepthi
Directory Team | Infosys - Cisco