Проблема во время поиска метода Spring ldapTemplate

Я использую ldapTemplate из Spring. В моем ldaputility.java я делаю так:

public Object findUser(String username) {
System.out.println("inside find USer with username : "+username);
Object object=ldapTemplate.lookup("uid=xyz,cn=users,o=companyName", 
new AttributesMapper<Object>()//GETTING ERROR AT THIS LINE
{

    @Override
    public User mapFromAttributes(Attributes attrs) throws NamingException {
        User user = new User();
    user.setFullName((String)attrs.get("cn").get());
    user.setLastName((String)attrs.get("sn").get());
    user.setPassword((String)attrs.get("password").get());

    return user;
    }
    });
    return object;
    }

в моем ldif я делаю что-то вроде этого:

dn: o=companyName
objectclass: domain
objectclass: top

dn: cn=users,o=companyName
objectclass: container
objectclass: top
cn: users

dn: cn=groups,o=companyName
objectclass: top
objectclass: container
cn: groups

dn: uid=xyz,cn=users,o=companyName
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
uid: xyz
userpassword: xyz123
sn: xyz
givenName: xyz
cn: xyz abc

Когда элемент управления входит в ldapTemplate.lookup(), я получаю следующую ошибку

    org.springframework.ldap.InvalidNameException: uid=xyz,cn=users,o=companyName: [LDAP: error code 34 - Invalid DN Syntax]; 
nested exception is javax.naming.InvalidNameException: uid=xyz,cn=users,o=companyName: [LDAP: error code 34 - Invalid DN Syntax]; 
remaining name 'uid=xyz,cn=users,o=companyName

Много искал, но не смог решить эту проблему. Кто-нибудь, пожалуйста, помогите мне в этом.


person user3592257    schedule 12.01.2015    source источник


Ответы (1)


Исключение указывает на недопустимый синтаксис в различающемся имени. Синтаксис DN — особенно в отношении кодирования специальных символов — довольно сложен, поэтому вам обычно следует избегать построения отличительных имен с помощью конкатенации строк (если вы это делаете).

Рассмотрите возможность использования LdapNameBuilder. для создания выдающихся имен.

person marthursson    schedule 13.01.2015