Enter LDAP Password: adding new entry "dc=neusoft,dc=com" ldap_add: Invalid syntax (21) additional info: objectClass: value #1 invalid per syntax
时间: 2024-03-12 08:44:21 浏览: 14
这个错误通常是由于在添加新条目时,缺少必需的 objectClass 属性或者 objectClass 属性的值不正确导致的。
LDAP 要求每个条目都必须包含一个 objectClass 属性,该属性用于定义条目的类型。同时,objectClass 属性的值必须是一个已定义的 objectClass 类型。
你可以检查你的 LDIF 文件,确保每个条目都包含了正确的 objectClass 属性及其值。例如,对于一个基本的组织单位 (organizational unit),应该包含以下 objectClass 属性和值:
```
objectClass: top
objectClass: organizationalUnit
```
如果你确认你的 LDIF 文件已经包含了正确的 objectClass 属性和值,但仍然遇到了这个错误,那么可能是因为你的 LDAP 服务器并不支持某个特定的 objectClass 类型。你可以尝试使用其他的 objectClass 类型,或者在 LDAP 服务器上添加缺少的 objectClass 类型。
另外,当你添加新条目时,你需要使用管理员账户进行身份验证。在出现 "Enter LDAP Password" 提示时,输入管理员账户的密码即可。
相关问题
php 使用Ldap2 新增用户 "objectclass: value #3 invalid per syntax"
"objectclass: value #3 invalid per syntax" 这个错误通常是由于添加的 objectclass 属性值不正确导致的。Ldap2 是一个 PHP 的 LDAP 扩展库,用于操作 LDAP 目录服务。要新增用户,需要先确定目录服务中已经定义了适当的 objectclass 属性,然后在添加新用户时,将该属性作为一个数组传递给 Ldap2 的 add() 方法。
以下是一个示例代码,用于向 LDAP 目录服务中添加一个新用户:
```php
$ldap = new Ldap();
$ldap->bind($dn, $password);
$entry = array(
"cn" => "New User",
"uid" => "newuser",
"objectclass" => array("top", "person", "organizationalPerson", "inetOrgPerson")
);
$dn = "uid=newuser,ou=People,dc=example,dc=com";
$result = $ldap->add($dn, $entry);
if($result === false) {
echo "Error: " . $ldap->getError();
} else {
echo "User added successfully";
}
```
在这个示例中,我们使用了 `top`, `person`, `organizationalPerson`, `inetOrgPerson` 四个 objectclass 属性来定义新用户的类型。如果目录服务中没有这些属性,或者属性值不正确,就会出现上述错误。
javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name 'DC=siso,DC=com'
这个异常表示在LDAP查询中存在未处理的继续引用,剩余名称为'DC=siso,DC=com'。继续引用是LDAP服务器用于指示查询结果仍然可用,但需要进一步检索的一种方式。
要解决此异常,您可以执行以下操作之一:
1. 检查LDAP服务器配置:确保LDAP服务器的配置正确,并且连接参数和搜索基础正确设置。
2. 增加查询限制:您可以尝试使用适当的查询限制来限制结果集的大小,以避免返回太多的继续引用。
3. 使用适当的搜索控制:您可以使用SearchControls类中的setDerefLinkFlag方法来设置搜索控制,以便在处理继续引用时进行适当的解引用。
请注意,具体的解决方法可能因您的应用程序和环境而异。建议查看LDAP服务器和应用程序的文档,以获得更多关于如何处理此异常的指导。