/** * 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; }
/** * 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(); } }