/**
  * @param userId
  * @param password
  * @throws Exception
  */
 public User autenticarUsuario(String username, String password) throws Exception {
   User u = userDao.getUser(username);
   if (u != null) {
     String loginPwd = this.generarPassword(username, password);
     if (loginPwd.equals(u.getPassword())) return u;
     else return null;
   } else {
     throw new Exception("Usuario inexistente");
   }
 }
  /**
   * Crea un usuario a partir de los datos proporcionados
   *
   * @param userName
   * @param nombre
   * @param apellido
   * @param email
   * @param password
   * @param roleId
   * @throws Exception
   */
  public User crearUsuario(
      String userName, String nombre, String apellido, String email, String password, int roleId)
      throws Exception {

    if (!existeUsuario(userName)) {

      String encPwd = this.generarPassword(userName, password);
      Role r = roleDao.getRole(roleId);
      User u = new User(userName, encPwd, email, nombre, apellido, r);

      userDao.saveUser(u);

      return u;
    } else {
      throw new Exception("Usuario duplicado");
    }
  }
 /**
  * Chequea la existencia de un username repetido
  *
  * @param username
  * @return userduplicado
  */
 private boolean existeUsuario(String username) {
   if (userDao.getUser(username) != null) return true;
   return false;
 }