Ldap插入异常
问题描述:
我想向目录服务器数据库添加一个条目。这些是我正在插入值:Ldap插入异常
userName=[[email protected]]
driverEmail=[[email protected]]
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')
谁能告诉我什么是错的。
答
你并没有完全展示你如何去插入这些值,所以很难太具体。但是,这个例外很明显。
您试图分配进入两个inetOrgPerson
对象类和mwUser
对象类,因为它们都被定义为结构对象类,并从其他(最有可能mwUser
既不继承被定义为结构性不工作对象类,因为您的架构没有将其指定为对象类AUXILIARY
或ABSTRACT
)。
每RFC 4512:
的物体或别名条目的特征在于,它具有一个单一的结构对象类作为最下级对象类正好一个结构对象类的超类链。
有两种可能的解决方法应该涉及到您的LDAP模式简单的更改:
1)如果你想所有mwUser
对象是inetOrgPerson
对象,只需声明mwUser
子对象类的inetOrgPerson
像这样(取自the OpenLDAP documentation):
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
对象类分配给对象。