/* * DrakkarKeel - An Enterprise Collaborative Search Platform * * The contents of this file are subject under the terms described in the * DRAKKARKEEL_LICENSE file included in this distribution; you may not use this * file except in compliance with the License. * * 2013-2014 DrakkarKeel Platform. */ package drakkar.stern.servant; import drakkar.stern.controller.ContainerController; import java.io.*; import java.security.*; import java.util.*; /** * Esta clase constitye el sirviente del objeto ice Manager, por lo cual * implementa los métodos definidos en esta interfaz, los cuales tienen objetivo * facilitar la administración del sistema. */ public class ManagerServant { private ArrayList<ContainerController> containersList = null; private String name = null; private String password = null; /** * Constructor de la clase * * @param containersList lista de contenedore en existencia en el server. */ public ManagerServant(ArrayList<ContainerController> containersList) { this.containersList = containersList; } /** * Este método es empleado para la autentificación del administrador del sistema. * * @param name * @param password * @return un objeto Response con el resultado de la operación */ public boolean login(String name, String password) { this.name = name; this.password = password; boolean flag = false; File file = new File("adminConf.txt"); String nam = null; String passw = null; BufferedReader fileRead = null; if (file.exists()) { try { fileRead = new BufferedReader(new InputStreamReader(new FileInputStream(file))); } catch (FileNotFoundException err) { err.printStackTrace(); } try { nam = fileRead.readLine(); passw = fileRead.readLine(); fileRead.close(); } catch (IOException err) { err.printStackTrace(); } if (nam.equals(name)) { if (passw.equals("sisAdminColab")) { if (passw.equals(password)) { flag = true; } else { flag = false; } } else { String passwEncrypting = passwordEncrypting(password); if (passwEncrypting.equals(passw)) { flag = true; } else { flag = false; } } } else { flag = false; } } return flag; } private String passwordEncrypting(String passWord) { byte[] key = new byte[2]; key[0] = 5; key[1] = 9; byte[] buffer = passWord.getBytes(); return new String(getKeyedDigest(buffer, key)); } private byte[] getKeyedDigest(byte[] buffer, byte[] key) { try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(buffer); return md5.digest(key); } catch (NoSuchAlgorithmException e) { } return null; } /** * Este método devuelve el nombre del administrador del sistema. * * @return nombre del administrador */ public String getName() { return this.name; } /** * Este método devuelve la contraseña del administrador del sistema. * * @return contraseña del administrador. */ public String getPassword() { return this.password; } /** * Este método reemplaza el nombre actual de administrador del sistema. * * @param name - nuevo nombre */ public void setName(String name) { this.name = name; } /** * Este método reemplaza la contraseña del administrador del sistema. * * @param password - nueva contraseña */ public void setPassword(String password) { this.password = password; } /** * Este método de vuelve una lista con los contenedores existentes en el servidor. * * @return lista de contenedores */ public ArrayList<ContainerController> getContainersList() { return containersList; } /** * Este método reemplaza la lista de contenedores * * @param containersList - nueva lista de contenedores. */ public void setContainersList(ArrayList<ContainerController> containersList) { this.containersList = containersList; } }