Retardo progresivo trar error en identificación Struts
Buenas de nuevo!
Ya he hecho lo de los tiempos y te comento.
En un principio utilicé simplemente un "Thread.sleep(intentos * 2000)", consiguiendo así
un retardo progresivo de 2 segundos por cada intento fallido a costa de "dormir" la ejecución, y funcionaba muy bien. El único inconveniente es que cuando provocaba un "timeout" (establecí el valor de web.xml a 60 segundos) metiendo muchos fallos consecutivos, se creaba automáticamente una nueva sesión y perdía la cuenta de los intentos, por lo que el siguiente fallo de acceso de usuario comenzaba de nuevo en 0 segundos de retardo. Quizá no es demasiado grave, porque el "timeout" suele ser mucho mayor, pero no es exactamente lo que quería.
Pensé que la solución que me diste de hacer un redirect hacia ella misma evitaría este
problema, ya que sólo dormía la ejecución en intervalos de 2 segundos entre cada redirect,
pero sin embargo funciona de la misma manera. El "timeout" se produce, se crea una nueva sesión, y pierdo los datos de la sesión anterior por lo que pierdo el conteo de los
intentos fallidos.
Aparentemente a mí me parece que el comportamiento no es el que preveíamos, puesto que no considera el redirect como una acción que anule el tiempo de inactividad en la aplicación.
¿Qué me dices al respecto?
Ya he hecho lo de los tiempos y te comento.
En un principio utilicé simplemente un "Thread.sleep(intentos * 2000)", consiguiendo así
un retardo progresivo de 2 segundos por cada intento fallido a costa de "dormir" la ejecución, y funcionaba muy bien. El único inconveniente es que cuando provocaba un "timeout" (establecí el valor de web.xml a 60 segundos) metiendo muchos fallos consecutivos, se creaba automáticamente una nueva sesión y perdía la cuenta de los intentos, por lo que el siguiente fallo de acceso de usuario comenzaba de nuevo en 0 segundos de retardo. Quizá no es demasiado grave, porque el "timeout" suele ser mucho mayor, pero no es exactamente lo que quería.
Pensé que la solución que me diste de hacer un redirect hacia ella misma evitaría este
problema, ya que sólo dormía la ejecución en intervalos de 2 segundos entre cada redirect,
pero sin embargo funciona de la misma manera. El "timeout" se produce, se crea una nueva sesión, y pierdo los datos de la sesión anterior por lo que pierdo el conteo de los
intentos fallidos.
Aparentemente a mí me parece que el comportamiento no es el que preveíamos, puesto que no considera el redirect como una acción que anule el tiempo de inactividad en la aplicación.
¿Qué me dices al respecto?
1 Respuesta
Respuesta de Fernando Rosado Altamirano
1