我正在尝试使用Java命名包更改组可分辨名称 但每次我得到相同的错误信息
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, url);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, user);
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.REFERRAL, "follow");
DirContext ctx = new InitialDirContext(env);
ModificationItem[] roleMods = new ModificationItem[]
{
new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("distinguishedName",DN2))
};
ctx.modifyAttributes(DN1,roleMods);
每次我收到此错误:
线程中的异常" main" javax.naming.directory.InvalidAttributeValueException:[LDAP:错误代码19 - 000020B1:AtrErr:DSID-030F04A3,#1: 0:000020B1:DSID-030F04A3,问题1005(CONSTRAINT_ATT_TYPE),数据0,Att 31(distinguishedName)
如果是,我该怎么做才能改变DN?
答案 0 :(得分:2)
通常,在LDAP中重命名不是修改,因为更改适用于DN(专有名称)。当您查找重命名或修改DN /修改RDN操作时,您经常会找到示例。
以下是example如何使用JNDI LDAP提供程序重命名。
我希望这会有所帮助。