Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

  • Añadimos la librería de cloudflare turnstile (Si utilizamos una plantilla, hay que meterlo en el head)
  • Añadimos el div del captcha: tiene que tener la clase “cf-turnstile” y el atributo data-sitekey con el site-key que representa nuestro dominio.
  • Añadimos un h:input oculto (type=hidden) con el nombre “cf-turnstile response”. Le asignamos un value del manejador para recoger el valor del token.
  • Definimos una función javascript que renderiza nuestro div del captcha y asigna el valor del token de respuesta a la variable de nuestro manejador.

Con esto, el token captcha queda implementado en el cliente y el token generado, a la espera de la validación en la parte del servidor

...

Los parámetros requeridos en la solicitud solicitud  de validación son:

  • Secret (site secret key)
  • Response (token)

...

La respuesta, siempre contiene una propiedad “success”, ya sea verdadera o falsa, indicando si la operación fue exitosa o no (Es la que utilizamos para comprobar que el token es válido)

La documentación de cloudflare turnstile está disponible en javascript modular, pero para implementarlo en java nosotros utilizamos la librería Jersey. Los pasos básicos a seguir son:

  • Configuración del cliente HTTP:
    • Se crea una instancia de ClientConfig para configurar el cliente HTTP.
    • Se habilita el mapeo POJO para JSON en la configuración.
  • Creación del cliente HTTP:
    • Se instancia un objeto Client utilizando la configuración previamente definida.
  • Creación del recurso web:
    • Se crea un objeto WebResource apuntando a la URL proporcionada en ${turnstile.url}.
  • Preparación de la solicitud:
    • Se crea un objeto CaptchaRequest que contiene los datos necesarios para la validación del token de captcha.
    • El token recibido como parámetro se establece en el objeto CaptchaRequest.
    • Se proporciona un secreto en el objeto CaptchaRequest obtenido de ${TURNSTILE_SECRET_KEY}.
  • Realización de la solicitud HTTP POST:
    • Se envía una solicitud HTTP POST al servicio web utilizando el objeto webResource.
    • Se configura la solicitud para enviar y recibir datos en formato JSON.

Si la respuesta no es nula y todo ha ido bien (200 OK), entonces obtenemos se deserializa el cuerpo de la respuesta JSON en un objeto CaptchaResponse y devolvemos la propiedad success.

...

Resumen final con esquema general

Info
titleConfiguración de las contraseñas
Es recomendable revisar esta guía para Gestión de Usuarios/Contraseñas de Servicios Externos en los Proyectos


Tambien es preferible usar Componente para Cargar Propiedades y Ficheros de Propiedades en lugar de filtrar la página completa. La propiedad se carga con una expresión EL en la página.