2016-03-29 9 views
0

gerektirir LDAP: error code 65 - object class 'inetOrgPerson' requires attribute 'sn'LDAP: hata kodu 65 - nesne sınıfı 'inetOrgPerson' özelliği 'sn' Ben hatayı veren kayıtlarının eklenmesi benim Bahar application.While içinde LdapTemplate kullanıyorum

Benim depo kodu

@Autowired 
    private LdapTemplate ldapTemplate; 

    @Autowired 
    private PasswordEncoder passwordEncoder; 

    public void setLdapTemplate(LdapTemplate ldapTemplate) { 
     this.ldapTemplate = ldapTemplate; 
    } 

    public void create(User user) { 
     Name dn = buildDn(user); 
     DirContextAdapter context = new DirContextAdapter(dn); 
     mapToContext(user, context); 
     ldapTemplate.bind(dn, context, null); 
    } 

    private LdapName buildDn(User user) { 
     return LdapNameBuilder 
       .newInstance() 
       .add("cn", user.getName()) 
       .add("sn", user.getLname()) 
       .add("uid", user.getUid()) 
       .add("userPassword", passwordEncoder.encode(user.getPassword())) 
       .build(); 

    } 

    private void mapToContext(User user, DirContextAdapter context) { 
     context.setAttributeValues("objectclass", new String[] { "top", "inetOrgPerson" }); 
     context.setAttributeValue("uid", user.getName()); 
     context.setAttributeValue("userPassword", 
       passwordEncoder.encode(user.getPassword())); 

    } 
} 

olduğunu Ayrıca inetOrgPerson'u kişiye, organizasyonel kişiliğe değiştiriyorum ama işe yaramıyor. Aşağıda koduna göre bu kodu yerine

dn: ou=roles,dc=cofinding,dc=com 
objectclass: top 
objectclass: organizationalUnit 
ou: roles 

dn: ou=people,dc=cofinding,dc=com 
objectclass: top 
objectclass: organizationalUnit 
ou: people 


# Users 

dn: uid=admin1,ou=people,dc=cofinding,dc=com 
objectclass: top 
objectclass: person 
objectclass: organizationalPerson 
objectclass: inetOrgPerson 
cn: Prashant 
sn:Thorat 
uid: admin1 
userPassword: admin1Pass 

dn: uid=admin2,ou=people,dc=cofinding,dc=com 
objectclass: top 
objectclass: person 
objectclass: organizationalPerson 
objectclass: inetOrgPerson 
cn: Aniket 
sn:Patil 
uid: admin2 
userPassword: admin2Pass 

dn: uid=user1,ou=people,dc=cofinding,dc=com 
objectclass: top 
objectclass: person 
objectclass: organizationalPerson 
objectclass: inetOrgPerson 
cn: Gautam 
sn:Kanawade 
uid: user1 
userPassword: user1Pass 


# Roles 

dn: cn=USER,ou=roles,dc=cofinding,dc=com 
objectclass: top 
objectclass: groupOfNames 
cn: USER 
member: uid=admin1,ou=people,dc=cofinding,dc=com 
member: uid=admin2,ou=people,dc=cofinding,dc=com 
member: uid=user2,ou=people,dc=cofinding,dc=com 

dn: cn=ADMIN,ou=roles,dc=cofinding,dc=com 
objectclass: top 
objectclass: groupOfNames 
cn: ADMIN 
member: uid=admin1,ou=people,dc=cofinding,dc=com 
member: uid=admin2,ou=people,dc=cofinding,dc=com 

cevap

0
private LdapName buildDn(User user) { 
     return LdapNameBuilder 
       .newInstance() 
       .add("cn", user.getName()) 
       .add("sn", user.getLname()) 
       .add("uid", user.getUid()) 
       .add("userPassword", passwordEncoder.encode(user.getPassword())) 
       .build(); 

    } 

    private void mapToContext(User user, DirContextAdapter context) { 
     context.setAttributeValues("objectclass", new String[] { "top", "inetOrgPerson" }); 
     context.setAttributeValue("uid", user.getName()); 
     context.setAttributeValue("userPassword", 
       passwordEncoder.encode(user.getPassword())); 

    } 

deneyin benim terminalden ldif dosyasını ekleyebilir olarak

private LdapName buildDn(User user) { 
      return LdapNameBuilder 
        .newInstance() 
        .add("ou", "people") 
        .add("uid", user.getUid()) 
            .build(); 
     } 



    private void mapToContext(User user, DirContextAdapter context) { 
        context.setAttributeValues("objectclass", new String[] { "top", "inetOrgPerson" }); 
        context.setAttributeValue("uid", user.getName()); 
     context.setAttributeValue("cn", user.getName()); 
     context.setAttributeValue("sn", user.getLname()); 
        context.setAttributeValue("userPassword", 
          passwordEncoder.encode(user.getPassword())); 

       } 
İlgili konular