示例#1
0
 /**
  * Valida que la clave no exista en el historial
  *
  * @param ide_usua Clave primaria del usuario
  * @param clave
  * @return
  */
 public boolean isClaveNueva(String ide_usua, String clave) {
   // Busco cuantas claves anteriores valido, estan sis_reglas
   TablaGenerica tab_reglas = getReglas();
   int int_num_antes = 0;
   try {
     int_num_antes = Integer.parseInt(tab_reglas.getValor("NUM_VALIDA_ANTERIOR_RECL"));
   } catch (Exception e) {
   }
   if (int_num_antes == 0) {
     // valido todas
     TablaGenerica tab_historia =
         utilitario.consultar(
             "SELECT * FROM sis_historial_claves where ide_usua="
                 + ide_usua
                 + " and clave_hicl='"
                 + encriptar.getEncriptar(clave)
                 + "'");
     return tab_historia.isEmpty();
   } else {
     TablaGenerica tab_historia =
         utilitario.consultar(
             "SELECT * FROM sis_historial_claves where ide_usua="
                 + ide_usua
                 + " order by FECHA_HICL desc");
     for (int i = 0; i < int_num_antes; i++) {
       if (tab_historia.getValor("CLAVE_HICL") != null
           && (tab_historia.getValor("CLAVE_HICL").equals(encriptar.getEncriptar(clave)))) {
         return false;
       }
     }
     return true;
   }
 }
示例#2
0
 /**
  * Forma la sentencia sql para el insert en la tabla de historial de auditoria de usuarios
  *
  * @param ide_usua Clave primaria del usuario
  * @param clave la clave sin encriptar
  * @return la sentencia sql
  */
 public String crearSQLHistorialClave(String ide_usua, String clave) {
   String str_sql =
       "INSERT INTO sis_historial_claves (ide_usua,clave_hicl,fecha_hicl,hora_hicl) VALUES("
           + ide_usua
           + ",'"
           + encriptar.getEncriptar(clave)
           + "',"
           + utilitario.getFormatoFechaSQL(utilitario.getFechaActual())
           + ","
           + utilitario.getFormatoHoraSQL(utilitario.getHoraActual())
           + ")";
   return str_sql;
 }
示例#3
0
 public void cambiarClave(String ide_usua, String clave) {
   String str_sql =
       "UPDATE sis_usuario_clave SET clave_uscl='"
           + encriptar.getEncriptar(clave)
           + "' WHERE IDE_USUA="
           + ide_usua
           + " and activo_uscl=true";
   utilitario.getConexion().agregarSql(str_sql);
   str_sql = "UPDATE sis_usuario SET cambia_clave_usua=false WHERE IDE_USUA=" + ide_usua;
   utilitario.getConexion().agregarSql(str_sql);
   // historial de claves de usuario
   utilitario.getConexion().agregarSql(crearSQLHistorialClave(ide_usua, clave));
   // Auditoria de Cambio de clave solo si el usuario no es nuevo
   utilitario
       .getConexion()
       .agregarSql(
           crearSQLAuditoriaAcceso(ide_usua, P_SIS_CAMBIO_CLAVE, "Cambió clave el usuario"));
   utilitario.getConexion().ejecutarListaSql();
 }
示例#4
0
 /**
  * Resetea la clave de un usuario
  *
  * @param ide_usua Clave primaria del usuario
  * @param clave Nueva clave
  */
 public void resetearClave(String ide_usua, String clave) {
   // Resete la Clave
   String str_sql =
       "UPDATE sis_usuario_clave SET CLAVE_USCL='"
           + encriptar.getEncriptar(clave)
           + "' WHERE IDE_USUA="
           + ide_usua
           + " AND ACTIVO_USCL=true";
   // Actualiza el campo para que a lo que ngrese al sistema le obligue a
   // cambiar la clave
   utilitario.getConexion().agregarSql(str_sql);
   str_sql = "UPDATE sis_usuario SET cambia_clave_usua=true WHERE IDE_USUA=" + ide_usua;
   utilitario.getConexion().agregarSql(str_sql);
   // Auditoria para reseteo de clavel
   utilitario
       .getConexion()
       .agregarSql(crearSQLAuditoriaAcceso(ide_usua, P_SIS_RESETEO_CLAVE, "Reseteo de clave"));
   utilitario.getConexion().agregarSql(crearSQLHistorialClave(ide_usua, clave));
   utilitario.getConexion().ejecutarListaSql();
 }
示例#5
0
  /**
   * Ingresar al sistema
   *
   * @param nick Nick de login del usuario
   * @param clave Clave del usuario
   * @return mensaje de error si el fallo alguna validación, caso contrario retorna vacio
   */
  public String ingresar(String nick, String clave) {
    String str_mensaje = "";
    TablaGenerica tab_usuario =
        utilitario.consultar(
            "SELECT * FROM SIS_USUARIO WHERE NICK_USUA='" + nick + "' AND ACTIVO_USUA=true");
    if (tab_usuario.getTotalFilas() > 0) {
      utilitario.crearVariable("IDE_USUA", tab_usuario.getValor("IDE_USUA"));
      // Verifico que el usuario no este bloqueado
      if (tab_usuario.getValor("BLOQUEADO_USUA") == null
          || tab_usuario.getValor("BLOQUEADO_USUA").equals("false")
          || tab_usuario.getValor("BLOQUEADO_USUA").equals("0")) {

        // Verifica que el usuario no este caducoado
        if (tab_usuario.getValor("fecha_caduc_usua") != null) {
          if (utilitario.isFechaMayor(
              utilitario.getDate(),
              utilitario.getFecha(tab_usuario.getValor("fecha_caduc_usua")))) {
            str_mensaje =
                "La vigencia de su usuario a caducado, contactese con el administrador del sistema";
            return str_mensaje;
          }
        }
        // Verifica que el usuario no haya iniciado en otra maquina
        if (isUsuarioLogeado(tab_usuario.getValor("IDE_USUA")) == false) {

          // Verifica intentos fallidos vs intentos maximon
          int int_maximo_intentos = getNumeroIntentosAcceso();
          int int_intentos =
              getIntentosAcceso(tab_usuario.getValor("IDE_USUA"), utilitario.getFechaActual());
          if (int_intentos < int_maximo_intentos) {
            // Verifica que exista una clave activa para el usuario
            TablaGenerica tab_clave = getClaveActivaUusario(tab_usuario.getValor("IDE_USUA"));
            if (tab_clave.getTotalFilas() > 0) {
              // Verifica que la clave no haya caducado
              if (tab_clave.getValor("fecha_vence_uscl") != null) {
                if (utilitario.isFechaMayor(
                    utilitario.getDate(),
                    utilitario.getFecha(tab_clave.getValor("fecha_vence_uscl")))) {
                  str_mensaje =
                      "La vigencia de su clave a caducado, contactese con el administrador del sistema";
                  return str_mensaje;
                }
              }
              // Verifico que la clave sea correcta
              if (encriptar.getEncriptar(clave).equals(tab_clave.getValor("CLAVE_USCL"))) {
                try {
                  if (isPerfilActivo(tab_usuario.getValor("IDE_PERF"))) {
                    utilitario.crearVariable("IDE_PERF", tab_usuario.getValor("IDE_PERF"));
                    utilitario.crearVariable("TEMA", tab_usuario.getValor("TEMA_USUA"));
                    solicitarCambiarClave(tab_usuario.getValor("IDE_USUA"));
                    // Guarda en auditoria de acceso si no tiene
                    // q cambiar la clave el usuario
                    if (isCambiarClave(tab_usuario.getValor("IDE_USUA")) == false) {
                      // si tiene intentos fallidos de acceso los reseteo poniendoles fin
                      utilitario
                          .getConexion()
                          .agregarSql(
                              "UPDATE sis_auditoria_acceso set fin_auac=true WHERE ide_usua="
                                  + tab_usuario.getValor("IDE_USUA")
                                  + " and fecha_auac="
                                  + utilitario.getFormatoFechaSQL(utilitario.getFechaActual())
                                  + " and ip_auac='"
                                  + utilitario.getIp()
                                  + "'");
                      utilitario
                          .getConexion()
                          .agregarSql(
                              crearSQLAuditoriaAcceso(
                                  tab_usuario.getValor("IDE_USUA"),
                                  P_SIS_INGRESO_USUARIO,
                                  "Ingresó al sistema"));
                      utilitario.getConexion().ejecutarListaSql();
                    }
                  } else {
                    str_mensaje =
                        "El perfil de su usuario esta desactivado, contactese con el administrador del sistema";
                  }

                } catch (Exception e) {
                }
              } else {
                // Fallo el ingreso
                utilitario
                    .getConexion()
                    .ejecutarSql(
                        crearSQLAuditoriaAcceso(
                            tab_usuario.getValor("IDE_USUA"),
                            P_SIS_FALLO_INGRESO,
                            "Fallo ingreso intento : " + int_intentos));
                str_mensaje = "La clave ingresada es incorrecta";
                int_intentos++;
                if (int_intentos == int_maximo_intentos) {
                  str_mensaje =
                      " A sobrepasado el número máximo de intentos para acceder al sistema, se bloqueara el usuario, contáctese con el administrador del sistema para desbloquearlo";
                  bloquearUsuario(
                      tab_usuario.getValor("IDE_USUA"),
                      "Bloquear usuario por sobrepasar el numero maximo de intentos : "
                          + int_maximo_intentos);
                }
              }
            } else {
              str_mensaje =
                  "El usuario no tiene una clave activa contactese con el administrador del sistema";
            }
          } else {
            // bloqueo el usuario por sobrepasar el numero maximo de
            // intentos permitidos
            str_mensaje =
                "A sobrepasado el número máximo de intentos para acceder al sistema, se bloqueara el usuario, contáctese con el administrador del sistema para desbloquearlo";
            bloquearUsuario(
                tab_usuario.getValor("IDE_USUA"),
                "Bloquear usuario por sobrepasar el numero maximo de intentos : "
                    + int_maximo_intentos);
          }
        } else {
          // Guarda intento fallido al acceder se ya se encuentra en
          // ssesion
          utilitario
              .getConexion()
              .ejecutarSql(
                  crearSQLAuditoriaAcceso(
                      tab_usuario.getValor("IDE_USUA"),
                      P_SIS_FALLO_INGRESO,
                      "Fallo ingreso, el usuario tiene sessión iniciada en otra máquina "));

          str_mensaje =
              "El usuario ingresado tiene sessión iniciada en otra máquina,contactese con el administrador del sistema ";
        }
      } else {
        str_mensaje = "El usuario esta bloqueado contactese con el administrador del sistema";
      }
    } else {
      str_mensaje = "El nombre del usuario es incorrecto o no está activo";
    }
    return str_mensaje;
  }