2012-12-13 4 views
0

Spring LDAPTemplate을 사용하여 OpenLDAP를 제어하려고합니다.봄 LdapTemplate - 특성 'gidNumber'예외 허용되지 않음

LDAP에서 그룹 및 사용자 조직 단위가 있습니다. 그룹 연결을 사용하여 LDAP에 새 사용자를 바인딩하려고합니다. (일반 사용자 계정) 그래서 새로운 사용자를 바인드하려고 할 때 gidNumber attiribute를 속성 오브젝트에 넣습니다. 하지만이 같은 오류 받고 있어요 : 여기

[LDAP: error code 65 - attribute 'gidNumber' not allowed]; nested exception is javax.naming.directory.SchemaViolationException: [LDAP: error code 65 - attribute 'gidNumber' not allowed]; remaining name 'ou=staff' 

것은 지금까지 시도한 작업은 다음과 같습니다

여기
DistinguishedName dn = new DistinguishedName(); 
dn.add("ou", "staff"); 
Attributes attributes = new BasicAttributes(); 
attributes.put("objectClass", "inetOrgPerson"); 
attributes.put("uid", username); 
attributes.put("givenName", name); 
attributes.put("gidNumber", gidNumber.toString()); 
attributes.put("sn", surname); 
attributes.put("cn", name + " " + surname); 
attributes.put("userPassword", password); 
ldapTemplate.bind(dn, null, attributes); 

내 스키마입니다 :

+--> dc=ibu,dc=edu,dc=tr (5) 
    ---> cn=admin 
    +--> ou=group (1) 
    | ---> cn=Academic 
    ---> ou=guest 
    +--> ou=staff (2) 
    | ---> cn=John Clark 
    ---> ou=student 

답변

0

당신은 다른 개체를 추가해야 posixAccount라는 클래스 속성 gidNumber가이 클래스에 속하므로 그래서 다음과 같이 또 하나 개의 객체 클래스를 추가하려고 : LDAP 항목이 하나 단 하나의 구조 객체 클래스가 있어야합니다

attributes.put("objectClass", "posixAccount"); 
+0

답장을 보내 주셔서 감사합니다. 하지만 이제는 또 다른 예외가 생깁니다 : 'LDAP : 오류 코드 65 - 구조적 객체 클래스가 제공되지 않았습니다.' – talha06

0

. 일부 깨진 서버는 여러 구조 객체 클래스를 허용합니다. 구조적 오브젝트 클래스를 추가하십시오 (추가 할 오브젝트 클래스는 항목이 사용되는 목적에 따라 다름).

+0

LDAP 스키마를 추가하고 질문을 업데이트했습니다. 봄 LDAP **를 사용하여 **이 종속성을 어떻게 추가 할 수 있는지 좀 더 간단히 설명 할 수 있습니까? 예를 들어 ** Academic ** 그룹에 사용자를 추가하려면 어떻게해야합니까? – talha06

관련 문제