Pessoal, alguém pode me dar uma ajuda!
No meu servlet, preciso chamar uma classe e enviar alguns valores para execução, só que qdo eu chamo e envio os valores nada acontece.
Estou chamando a classe assim do meu servlet:
CadastraUserLdap add = new CadastraUserLdap();
add.setUsuario(usuario);
add.setSenha(senha);
e a classe deve receber os valores e executar.
Esta é a classe:
package util;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.NamingEnumeration;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import util.*;
public class CadastraUserLdap {
private static LdapContext ctx;
private final String URL_LDAP = "ldap://ldap.teste.com:389";
private String usuario = null;
private String senha = null;
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public boolean verificaUsuario(String usuario, String senha) throws NamingException {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, URL_LDAP);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, usuario);
env.put(Context.SECURITY_CREDENTIALS, senha);
// Tenta criar o contexto com os dados de login
try {
ctx = new InitialLdapContext(env,null);
// Login válido
return true;
} catch (javax.naming.AuthenticationException e) {
// Login inválido
return false;
}
}
public static void main(String[] args) {
CadastraUserLdap l = new CadastraUserLdap();
try {
if (l.verificaUsuario("uid="+l.getUsuario()+",ou=teste,o=teste.com",l.getSenha())) {
String base = "ou=teste,o=teste.com";
Object name = null;
SearchControls sc = new SearchControls();
String[] attributeFilter = { "displayName" };
sc.setReturningAttributes(attributeFilter);
sc.setSearchScope(SearchControls.SUBTREE_SCOPE);
String filter = "(uid="+l.getUsuario()+")";
NamingEnumeration results = ctx.search(base, filter, sc);
while (results.hasMore()) {
SearchResult sr = (SearchResult) results.next();
Attributes attrs = sr.getAttributes();
if (attrs.get("displayName").get()==null || attrs.get("displayName").get().equals("")){
name="null";
}
else {
name = attrs.get("displayName").get();
name = name.toString().replace("'", "");
name = name.toString().replace("\"", "");
//HttpSession sessao = request.getSession();
//sessao.setAttribute("nameLdap", name);
System.out.println(name);
}
}
}
} catch (NamingException n) {
n.printStackTrace();
}
}
}
Obs: Qdo eu rodo a classe separadamente, ela roda tudo certinho.
Agradeço a ajuda
