Ldap插入异常

时间:2012-07-10 16:42:19

标签: java ldap

我正在尝试向目录服务器数据库添加一个条目。这些是我插入的值:

userName=[ben@gmail.com]
driverEmail=[ben@gmail.com]
driverPassword=[ben]
firstName=[Ben]
lastName=[Hur]
newsletter=[false]

我得到了这个例外:

SEVERE: Cannot create new LDAP entry
LDAPException(resultCode=object class violation, errorMessage='Entry mwUniqueIdentifier=5f9e7597-8a5f-42b0-985b-7d196040689e,ou=People,dc=mobilewarrio
r,dc=com violates the Directory Server schema configuration because it includes     multiple conflicting structural objectclasses inetOrgPerson and mwUser
Account.  Only a single structural objectclass is allowed in an entry')

任何人都可以告诉我它有什么问题。

1 个答案:

答案 0 :(得分:3)

您没有准确显示插入这些值的方式,因此很难过于具体。但是,例外很清楚。

您尝试为inetOrgPerson对象类和mwUser对象类分配条目,这不起作用,因为它们都被定义为结构对象类,并且都不从其他类继承(大多数)可能mwUser被定义为结构对象类,因为您的模式未将其指定为AUXILIARYABSTRACT对象类。)

RFC 4512

  

对象或别名条目的特征恰好是一个结构对象类超类链,它具有单个结构对象类作为最下级的对象类。

有两种可能的修复方法,它们应该包含对LDAP模式的简单更改:

1)如果您希望所有mwUser个对象都是inetOrgPerson个对象,只需声明mwUserinetOrgPerson一样的子对象类(取自{{3} }}):

objectclass ( 1.1.2.2.2 NAME 'myPerson'
            DESC 'my person'
            SUP inetOrgPerson
            MUST ( myUniqueName $ givenName )
            MAY myPhoto )

在这种情况下,您只需要将mwUser对象类分配给您的条目。

2)如果你不希望所有mwUser个对象都是inetOrgPerson个对象,那么通过指定它是一个辅助对象类来声明它为mixin:

objectclass ( 1.1.2.2.1 NAME 'myPhotoObject'
                DESC 'mixin myPhoto'
                AUXILIARY
                MAY myPhoto )

在这种情况下,您必须将inetOrgPerson(或其他结构对象类)以及mwUser对象类分配给对象。

相关问题