Entrar
¿No tienes cuenta? Registrarse
SoloJava · Grupo de Usuarios Java de Venezuela
? ¿Ya tienes membresía? Entra a Yahoo!

Consejos

¿Sabías que...
Puedes decidir quién se inscribe en tu grupo. Tienes la opción de aprobar todas las suscripciones modificando las preferencias.

Mensajes

  Mensajes Ayuda
Avanzado
Auntentificacion contra un active directory 2003 (contra ldap)   Lista de mensajes  
Responder | Reenviar Mensaje #4390 de 5381 |
RE: [SoloJava] Auntentificacion contra un active directory 2003 (contra ldap)

package manex.econtact.model;

 

import javax.naming.directory.*;

import javax.naming.*;

import java.util.*;

import manex.econtact.model.CommonBean;

import manex.econtact.admin.AllFieldBean;

import manex.econtact.admin.AdminBean;

 

public class Ad {

 

String port = "389";

String host = "172.26.64.52";

           

            public Ad() {

            }          

           

    public String Validar(String user,String passwd)

    {

                        String userEcontact = "";

                        Hashtable env = new Hashtable();

                        DirContext ctx;

 

                        String port = "389";

                        String host = "172.26.64.52";

                        userEcontact = user;

                        user = "BGGRUPO\\"+user;

                       

 

                        env.put(Context.SECURITY_AUTHENTICATION,"simple");

                        env.put(Context.SECURITY_PRINCIPAL, user);

                        env.put(Context.SECURITY_CREDENTIALS, passwd);

                       

                       

                        env.put("java.naming.ldap.version", "3");

                        env.put(Context.REFERRAL, "follow");

 

                        String url = new String("LDAP://"+host+":"+port);

                        //String url = new String("LDAP://DC=bggrupo,DC=bank");

                        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");

                        env.put(Context.PROVIDER_URL,url);

 

                        System.err.println("Connecting to " +url);

                        try

                         {

                                   ctx = new InitialDirContext(env);

                                   //ctx.bind(user, ctx, null);

                                   System.err.println("Connected to " +url);

                                   ctx.close();

                                   ValidarUser(userEcontact);

                                   return "1";

                         }

                        catch(Exception e)

                        {

                         System.out.println("Username/Password Incorrecto");

                        return "0";

                        }                      

 

 

Con este código yo le paso un user y el pass como parámetro y si se conecta no se va por el exeption y si no se conecta ( user o pass incorrecto, o cualquier otra cosa) me da una exeption y me retorna 0

 

Espero que te sirva porque a mi me sirve de 1000 maravillas

 

Atte

red


De: SoloJava@... [mailto:SoloJava@...] En nombre de Miren Urkijo
Enviado el: Lunes, 10 de Abril de 2006 02:32 p.m.
Para: SoloJava@...
Asunto: [SoloJava] Auntentificacion contra un active directory 2003 (contra ldap)

 

Hola estoy tratando de escribir un codigo para auntentificar, usando java, usuarios contra un active directory de un windows 2003.

bien mediante el codigo de abajo lo que hago es conectarme como administrados y hacer una busqueda a ver si hay un usuairo que sea como el usuairo que le paso.

con esto lo que hago es ver si hay algun usuairo con un nombre de window socmo le que le paso.

bien tambien tengo el password pero no se como ponerselo para que tambien me lo compare y me haga la busqueda en base a usuario y password.

 

No se ni donde se busca ni como se compararia.

 

Me podeis ayudar?

muchas gracias

 

 

//codigo:

 

String username="usuarioDemo";


                    Hashtable env = new Hashtable();
     
     
                    //String adminName = "Administrador";
                    String adminName = "Administrador";
                    String adminPassword = "<PASSWORD>";
                    String ldapURL = "ldap://1270.0.1:389";
                   
                    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
     
                    env.put(Context.SECURITY_AUTHENTICATION,"simple");
                    env.put(Context.SECURITY_PRINCIPAL,adminName);
                    env.put(Context.SECURITY_CREDENTIALS,adminPassword);
                         env.put(Context.PROVIDER_URL,ldapURL);
                    try {
                            DirContext ctx = new InitialLdapContext(env,null);
                            SearchControls searchCtls = new SearchControls();
                            String returnedAtts[]={"sn","givenName","mail"};
                            searchCtls.setReturningAttributes(returnedAtts);
                            searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
                            String searchFilter = "(&(objectClass=user)(SAMAccountName="+ username +"))";

                            String searchBase = "OU=Users,DC=corp,DC=com";
                            int totalResults = 0;
                            NamingEnumeration answer = ctx.search(searchBase, searchFilter, searchCtls);
     ..........

 

La cosa es como concateno aqui el password ya que me imagino que en windows estará codificado y primero lo tendrá que codificar para compararlo.

 

Me podeis ayudar?

muchas gracias




Mar, 11 de Abr, 2006 2:09 pm

resteves_22
Sin conexión Sin conexión
Enviar correo Enviar correo

Reenviar Mensaje #4390 de 5381 |
Desplegar mensajes Autor Ordenar por fecha

Hola estoy tratando de escribir un codigo para auntentificar, usando java, usuarios contra un active directory de un windows 2003. bien mediante el codigo de...
Miren Urkijo
member; u=23...
Sin conexión Enviar correo
11 de Abr, 2006
12:31 pm

package manex.econtact.model; import javax.naming.directory.*; import javax.naming.*; import java.util.*; import manex.econtact.model.CommonBean; import...
Roberto Esteves
member; u=93...
Sin conexión Enviar correo
11 de Abr, 2006
2:14 pm
Avanzado

Copyright © 2009 Yahoo! Inc. Todos los derechos reservados.
Normativa de confidencialidad - Condiciones del servicio - Reglas - Ayuda