我使用下面代码来同时update unicodePwd和其它属性
ldapTemplate.modifyAttributes(user.getDn(), list.toArray(new ModificationItem[]{}));
修改密码时,如果使用下面(先del再add),就不能修改,会报没有unicodePwd这个错误!
Attribute oldAttr = new BasicAttribute("unicodePwd",("\"" + plainOldPassword + "\"").getBytes(StandardCharsets.UTF_16LE));
Attribute newAttr = new BasicAttribute("unicodePwd",("\"" + plainTextPassword + "\"").getBytes(StandardCharsets.UTF_16LE));
ModificationItem removeItem = new ModificationItem(DirContext.REMOVE_ATTRIBUTE, oldAttr);
ModificationItem addItem = new ModificationItem(DirContext.ADD_ATTRIBUTE, newAttr);
如果使用下面replace,就可以成功!
ModificationItem replaceItem = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("unicodePwd",("\"" + plainTextPassword + "\"").getBytes(StandardCharsets.UTF_16LE)));
想请教下,有哪位朋友知道,为什么unicodePwd不能与其它属性一起update吗?