/** * Funcion que baja un archivo desde el servidor remoto * * @param nombre El nombre del usuario * @param clave La clave del usuario * @param argumento Nombre del archivo a bajar * @param fs La interfaz del servidor para acceder al servicio remoto * @throws Exception Cuando el objeto remoto no esta disponible */ public static void baj(String nombre, String clave, String argumento, s_rmifs_Interface fs) { try { // Comprobar que el archivo no existe localmente if (!comprobarArchivo(argumento)) { // Ejecutar el comando byte[] archivoFormateado = fs.baj(nombreCliente, claveCliente, argumento); if (archivoFormateado != null) { System.out.println(construirArchivo(argumento, archivoFormateado)); } else { System.out.println("Error al construir el archivo"); } } else { System.out.println("El archivo solicitado ya existe"); } } catch (Exception e) { System.out.println(e.getMessage()); System.out.println(" - ERROR - El Servidor de Archivos ya no esta disponible"); System.exit(EXIT_FAILURE); } }
/** * 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; }
/** * Funcion que borra un archivo desde el servidor remoto * * @param nombre El nombre del usuario * @param clave La clave del usuario * @param argumento Nombre del archivo a borrar * @param fs La interfaz del servidor para acceder al servicio remoto * @throws Exception Cuando el objeto remoto no este disponible */ public static void bor(String nombre, String clave, String argumento, s_rmifs_Interface fs) { try { System.out.println(fs.bor(nombreCliente, claveCliente, argumento)); } catch (Exception e) { System.out.println(e.getMessage()); System.out.println(" - ERROR - El Servidor de Archivos ya no esta disponible"); System.exit(EXIT_FAILURE); } }
/** * Funcion que termina la ejecucion del cliente * * @param nombre El nombre del usuario * @param clave La clave del usuario * @param fs La interfaz del servidor para acceder al servicio remoto * @throws Exception Cuando el objeto remoto no este disponible */ public static void sal(String nombre, String clave, s_rmifs_Interface fs) { try { fs.sal(nombreCliente, claveCliente); System.out.println("- ALERT - Terminando ejecucion."); System.exit(1); } catch (Exception e) { System.out.println(e.getMessage()); System.out.println(" - ERROR - El Servidor de Archivos ya no esta disponible"); System.exit(EXIT_FAILURE); } }