Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

194
Vistas
hacer que una función no funcione durante unos segundos en Java

Tengo una función de inicio de sesión. Quiero que mi función no funcione, por ejemplo, 10 segundos si el usuario la llama por más de 5 veces. ¿Qué debo hacer para eso? Estaré encantado si alguien responde a mi pregunta.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Debe registrar los intentos de inicio de sesión fallidos para un usuario (por ejemplo, en la base de database ) y una vez que alcanza el umbral, debe devolver la respuesta de error del método de login de sesión durante un período de tiempo configurable desde el último intento de inicio de sesión fallido, por ejemplo:

  • Cuando falla un inicio de sesión, regístrelo en la base de datos (junto con la marca de tiempo)
  • Durante el intento de inicio de sesión, obtenga el recuento de intentos fallidos y verifique si ha alcanzado el umbral configurado
  • Si está por encima del umbral, verifique la marca de tiempo para el último inicio de sesión y bloquee la llamada si la fecha actual es, digamos, dentro de x minutos desde esa marca de tiempo
  • En el inicio de sesión exitoso, borre todos los intentos fallidos
over 4 years ago · Santiago Trujillo Denunciar

0

la función no funciona por ejemplo 10 segundos

Debe ser específico sobre lo que quiere decir exactamente con función para que no funcione . Pero si simplemente desea bloquear la llamada al método durante x segundos, siga el siguiente enfoque:

Debe crear un counter para contar la cantidad de intentos y luego if(counter>5) luego use Thread.sleep (10000) para realizar la solicitud de espera (dormir) durante 10 segundos. Idealmente, el valor del counter debe almacenarse en una base de datos (o cualquier otro almacenamiento) y leerlo nuevamente para validar la cantidad de intentos.

Pero, le sugiero encarecidamente que siga la respuesta de @Darshan, que tiene más sentido.

over 4 years ago · Santiago Trujillo Denunciar

0

Primero necesitas identificar al usuario.

Esto se puede hacer sobre la base de IP.

Tener un mapa hash concurrente

 ConcurrentHashMap<String,Long>IpAddressValidationMap // String is the Ip address and Long is the timeInMilleseconds

Haces un filtro y pones un cheque

 public void prefilterFunction(RequestObject object) { String ip=object.getIP(); // just an example not the standard call for getting Ip addr Long time=IpAddressValidationMap.get(ip); if(time!=null) { if(time<THRESHOLD_TIME) { return ; } else { // We allow the user to proceed } } } public void validateLogin(RequestObject object) { // if the login fails IpAddressValidationMap.put(ipAddr,System.currentTimeinMIllis()); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda