我已成功安装 OpenAM(原为 OpenSSO)并在 Glassfish 容器中运行。我还安装了 OpenLDAP 并最低限度地运行。现在我尝试从另一台服务器(Java Access Manager 和 Sun Java System Directory Server)导入记录的 LDIF 文件,但尝试运行 ldapadd 时出现持续错误:
ldap_add: Invalid syntax (21)
additional info: objectClass: value #2 invalid per syntax
我已经添加了提供的架构http://blogs.oracle.com/indira/entry/using_openldap_as_user_data,但似乎对错误信息没有影响。可能是我对 LDAP 缺乏一些简单的了解!
这是我的 LDIF 文件中的示例记录(域和密码已更改):
dn: uid=amAdmin,ou=People,dc=domain,dc=org
objectClass: inetuser
objectClass: inetorgperson
objectClass: organizationalperson
objectClass: person
objectClass: top
objectClass: iplanet-am-managed-person
objectClass: iplanet-am-session-service
objectClass: iplanet-am-user-service
objectClass: iPlanetPreferences
objectClass: inetAdmin
objectClass: sunAMAuthAccountLockout
inetUserStatus: Active
cn: amAdmin
sn: amAdmin
userPassword:: ------
uid: amAdmin
我假设上面链接中提供的模式文件应该包含“objectClass”行中使用的所有属性的配置,但这可能是我的核心误解之一!
谢谢你的帮助!
答案1
该错误是由于 objectclass 值无法识别,或者属性语法无效,通常由于条目的 LDIF 定义中有多余的空格。值 #2 是 inetOrgPerson,我认为是第二个选项。