2015-01-12 3 views
1

Я использую ldapTemplate весны. В моей ldaputility.java я делаю так:Проблема при поиске метода весны ldapTemplate

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 

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

ответ

2

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

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