Olá pessoal,
Estou tentando fazer com que minha aplicação implementada no VRaptor autentique usuários
no LDAP. Para isso, comecei a usar o Spring LDAP. Encontrei o exemplo abaixo, o testei e
funcionou. O problema é que não consigo “migrar” esse exemplo para a estrutura/sintaxe do
VRaptor. Alguém pode me ajudar?
//Classe principal
public class TestLDAPClient {
public static void main(String[] args) {
try {
Resource resource = new ClassPathResource("springldap.xml");
BeanFactory factory = new XmlBeanFactory(resource);
ContactDAO ldapContact = (LDAPContactDAO)factory.getBean("ldapContact");
List contactList = ldapContact.getContactDetails("usuario123", "123");
for( int i = 0 ; i < contactList.size(); i++){
System.out.println("Contact Name " + contactList.get(i));
}
} catch (Exception e) {
System.out.println("Error occured " + e.getCause());
}
}
public class LDAPContactDAO implements ContactDAO{
private LdapTemplate ldapTemplate;
public void setLdapTemplate(LdapTemplate ldapTemplate) {
this.ldapTemplate = ldapTemplate;
}
public List getContactDetails(String username, String password){
AndFilter andFilter = new AndFilter();
andFilter.and(new EqualsFilter("objectclass","person"));
andFilter.and(new EqualsFilter("uid", username));
System.out.println("LDAP Query " + andFilter.encode());
return ldapTemplate.search("", andFilter.encode(),new ContactAttributeMapper());
}
}
public interface ContactDAO {
public List getContactDetails(String username, String password);
}
//springldap.xml
<beans>
<bean id="contextSource"
class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldap://111.11.11.1:111" />
<property name="base" value="dc=teste,dc=com,dc=br" />
</bean>
<bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
<constructor-arg ref="contextSource" />
</bean>
<bean id="ldapContact"
class="br.gov.sc.epagri.ciram.cq.web.ldap.LDAPContactDAO">
<property name="ldapTemplate" ref="ldapTemplate" />
</bean>
</beans>