예제 #1
0
파일: c_rmifs.java 프로젝트: R2RITO/redesp2
  /**
   * Funcion que utiliza el servidor de autenticacion para autenticar a los usuarios provistos
   *
   * @param usuarios Lista con los usuarios a autenticar
   * @param puerto El puerto para conectarse al servidor de autenticacion
   * @return Booleano que indica si se pudo autenticar.
   * @throws MalformeURLException En caso de una URL mal formada
   * @throws RemoteException En caso de que el objeto remoto no este disponible
   * @throws NotBoundException En caso de que no se logre hacer el lookup
   */
  public static boolean autenticarCliente(ArrayList<Usuario> usuarios, int puerto) {

    // Acceder al servidor remoto de autenticacion
    String nActual = null;
    String cActual = null;
    boolean autenticado = false;

    try {

      s_rmifs_Interface auth =
          (s_rmifs_Interface) Naming.lookup("rmi://" + servidor + ":" + puerto + "/s_rmifs");

      for (Usuario usuActual : usuarios) {

        nActual = usuActual.getUsuario();
        cActual = usuActual.getClave();
        if (auth.autenticar(nActual, cActual)) {
          autenticado = true;
          break;
        }
      }

      // Manejo de excepciones.
    } catch (MalformedURLException murle) {
      System.out.println();
      System.out.println("MalformedURLException");
      System.out.println(murle);

    } catch (RemoteException re) {
      System.out.println();
      System.out.println("RemoteException");
      System.out.println(re);

    } catch (NotBoundException nbe) {
      System.out.println();
      System.out.println("NotBoundException");
      System.out.println(nbe);
    }

    // Si el usuario fue autenticado, guardar sus datos
    if (autenticado) {
      nombreCliente = nActual;
      claveCliente = cActual;
    }

    return autenticado;
  }
예제 #2
0
  /**
   * Método public static void guardarArchivoXML(ListaUsuarios listaDeUsuarios): Este método permite
   * guardar la lista de usuarios en un archivo XML. El procesamiento se hace con jdom
   */
  public static void guardarArchivoXML(ListaUsuario listaDeUsuarios) {
    Usuario nodoAuxiliar;

    /* Se crea una raiz de la estructura */
    Element root = new Element("usuarios");

    /* Es posible agregar atributos a la estructura inicial */
    root.setAttribute("tipo", "lista de usuarios");

    Iterator iterador = listaDeUsuarios.getIterator();

    while (iterador.hasNext()) {
      /* Se crea la etiqueta "usuario" */
      Element usuarios = new Element("usuario");

      nodoAuxiliar = (Usuario) iterador.next();

      /* Se crean las etiquetas nombre, apellido y cargo */
      Element nick = new Element("nick");
      Element clave = new Element("clave");
      Element nombre = new Element("nombre");
      Element apellido = new Element("apellido");
      Element fechanac = new Element("fechanac");
      Element avatar = new Element("avatar");

      /* Se inicializa cada etiqueta con sus valores de la lista */
      nick.setText(nodoAuxiliar.getNickname());
      clave.setText(nodoAuxiliar.getClave());
      nombre.setText(nodoAuxiliar.getNombre());
      apellido.setText(nodoAuxiliar.getApellido());
      fechanac.setText(nodoAuxiliar.getFechanaci());
      avatar.setText(nodoAuxiliar.getAvatar());

      /* Se añaden las etiquetas a la etiqueta principal (usuario)    */
      /* estableciendo que un usuario tiene nombre, apellido y cargo  */
      usuarios.addContent(nick);
      usuarios.addContent(clave);
      usuarios.addContent(nombre);
      usuarios.addContent(apellido);
      usuarios.addContent(fechanac);
      usuarios.addContent(avatar);

      /* Se añade el nuevo usuario a la estructura XML */
      root.addContent(usuarios);
    }

    /* Se crea un documento nuevo */
    Document doc = new Document(root);

    try {
      /* Se genera un flujo de salida de datos XML */
      XMLOutputter out = new XMLOutputter();

      /* Se asocia el flujo de salida con el archivo donde se guardaran los datos */
      FileOutputStream file = new FileOutputStream(nombreArchivo);

      /* Se manda el documento generado hacia el archivo XML */
      out.output(doc, file);

      /* Se limpia el buffer ocupado por el objeto file y se manda a cerrar el archivo */
      file.flush();
      file.close();

      /* En este caso se manda a imprimir el archivo por la consola   */
      /* ESTE PROCESO NO ES OBLIGATORIO PARA PROCESAR EL XML          */
      out.output(doc, System.out);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }