Beispiel #1
0
  /**
   * Finaliza la instancia única de LDAPManager. Una vez llamado a este metodo el LDAPManager no se
   * podrá volver a usar
   */
  public synchronized void destroy() {
    String prefixLog = "destroy: ";

    logger.debug(prefixLog + "Finalizando LDAPManager");

    connectionPool.destroy();
    instance = null;

    logger.debug(prefixLog + "LDAPManager finalizado correctamente");
  }
Beispiel #2
0
  public Vector<LDAPUser> getUserListLDAP() throws LDAPException {

    LDAPConnection connection = connectionPool.getConnection();

    /*patron para la busqueda de todos los usuarios*/
    String attb = "(" + atributoRol + "=" + rol + ")";

    /*buequeda de todos los usuarios que cumplan el patron*/
    LDAPSearchResults results = connection.search(base, LDAPv3.SCOPE_SUB, attb, null, false);

    LDAPAttribute ldapAttribute = null;
    LDAPUser usuario = null;
    LDAPEntry ldapEntry = null;

    Vector<LDAPUser> listUsers = new Vector<LDAPUser>();

    /*guardamos los usuarios en un array de usuarios con la información que nos interesa*/
    while (results.hasMoreElements()) {
      usuario = new LDAPUser();
      usuario = inicilizaUsuario(usuario);
      ldapEntry = (LDAPEntry) results.next();
      ldapAttribute = ldapEntry.getAttribute("uid");
      usuario.setName(ldapAttribute.getStringValues().nextElement().toString().toUpperCase());
      ldapAttribute = ldapEntry.getAttribute("cn");
      usuario.setNombreCompleto(ldapAttribute.getStringValues().nextElement().toString());
      ldapAttribute = ldapEntry.getAttribute("sn");
      usuario.setNombre(ldapAttribute.getStringValues().nextElement().toString());
      ldapAttribute = ldapEntry.getAttribute("mail");
      if (ldapAttribute != null) {
        usuario.setMail(ldapAttribute.getStringValues().nextElement().toString());
      }

      listUsers.add(usuario);
    }

    connectionPool.close(connection);

    return listUsers;
  }
Beispiel #3
0
  /**
   * Devuleve si un usuario dado con su password se autentica correctamente y posee el rol de la
   * aplicacion correspondiente
   *
   * @param user, usuario para validar
   * @param password, del usuario
   * @return true/false si se autentica correctamente o no
   * @throws LDAPException
   */
  public boolean isValidUser(String user, String password) throws LDAPException {

    LDAPConnection connection = connectionPool.getConnection();

    String attributeName = "uid";
    String filter = "uid=" + user + "," + base;

    /* Se realiza la autenticacion del usuario con la password*/
    connection.authenticate(filter, password);

    /* si es correcta se obtienen los atributos del usuario*/
    LDAPSearchResults results =
        connection.search(
            base, LDAPv3.SCOPE_SUB, "(" + attributeName + "=" + user + ")", null, false);

    /* Se obtienen los valores para el atributo rol*/
    LDAPAttribute ldapAttribute = null;
    LDAPEntry ldapEntry = null;
    while (results.hasMoreElements()) {
      ldapEntry = (LDAPEntry) results.next();
      ldapAttribute = ldapEntry.getAttribute(atributoRol);
    }
    // ahora no vendrian en lista separadas por coma si no la lista
    String[] lista = ldapAttribute.getStringValueArray();

    /* se cierra la conexion*/
    connectionPool.close(connection);

    /* si comprueba si pertenece al rol correspondiente para la aplicacion*/
    boolean resultado = perteneceGrupo(lista, rol);

    if (resultado) {
      logger.info("Autenticacion Ldap correcta");
    } else {
      logger.info("Error de autenticación contra ldap");
    }
    return resultado;
  }