2012-07-10 1 views
2

디렉토리 서버 데이터베이스에 항목을 추가하려고합니다. 이 내가 삽입하고있는 값은 다음과 같습니다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') 

사람은 잘못이 무엇인지 말해 줄 수.

답변

3

당신은 그 값들을 삽입하는 방법을 정확히 나타내지 않으므로 너무 구체적이지 않습니다. 그러나 예외는 매우 분명합니다.

당신은 그들이 모두 구조 개체 클래스로 정의하고 다른 (가장 가능성이 mwUser로부터도 상속이 구조적으로 정의대로 작동하지 않는 항목 모두 inetOrgPerson 객체 클래스와 mwUser 객체 클래스를 할당하려 스키마가 AUXILIARY 또는 ABSTRACT 객체 클래스로 지정하지 않았기 때문에 객체 클래스). RFC 4512

:

객체 또는 대체 엔트리는 가장 하위 클래스 객체로 한 구조적 객체 클래스가 정확히 하나의 구조 객체 클래스 수퍼 체인 것을 특징으로한다.

당신의 LDAP 스키마에 간단한 변경을 포함해야 두 가지 수정 사항이 있습니다 : 당신이 inetOrgPerson 객체로 모든 mwUser 객체를하려는 경우

1), 단순히 mwUser과 같이 inetOrgPerson의 하위 오브젝트 클래스를 선언는 (the OpenLDAP documentation에서 가져온) :

이 상황에서
objectclass (1.1.2.2.2 NAME 'myPerson' 
      DESC 'my person' 
      SUP inetOrgPerson 
      MUST (myUniqueName $ givenName) 
      MAY myPhoto) 

, 당신은 단지 당신의 항목에 mwUser 객체 클래스를 지정해야합니다.

모든 mwUser 객체가 다음 inetOrgPerson 개체 수 그렇게 같은 보조 객체 클래스 지정하여 그것을 믹스 인을 선언하지 않으려면

2) :

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

이 상황에서, 당신은해야합니다 (또는 다른 구조적 개체 클래스)과 mwUser 개체 클래스를 개체에 할당합니다.