...
Los pasos básicos a seguir son:
- 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
ClientConfigpara configurar el cliente HTTP. - Se habilita el mapeo POJO para JSON en la configuración.
- Se crea una instancia de
- Creación del cliente HTTP:
- Se instancia un objeto
Clientutilizando la configuración previamente definida.
- Se instancia un objeto
- Creación del recurso web:
- Se crea un objeto
WebResourceapuntando a la URL proporcionada en${turnstile.url}.
- Se crea un objeto
- Preparación de la solicitud:
- Se crea un objeto
CaptchaRequestque 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
CaptchaRequestobtenido de${TURNSTILE_SECRET_KEY}.
- Se crea un objeto
- 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.
- Se envía una solicitud HTTP POST al servicio web utilizando el objeto
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 | ||
|---|---|---|
| ||
| 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. |


