Cookie params con @CookieParam

Cookie params con @CookieParam

Las cookies son hasta la fecha una de las formas m谩s utilizadas que tenemos para persistir valores del lado del cliente, las cuales pueden ser recuperadas por el servidor para identificar a un usuario, darle seguimiento o simplemente para guardar alg煤n valor que utilizaremos despu茅s.

NOTA: Este art铆culo es parte de un tutorial completo para crear API REST con JAX-RS, si quieres ver el 铆ndice completo entra aqu铆.


Todas las cookies que guardemos en el cliente ser谩n transmitidas al servidor de forma autom谩tica al servidor en los request posteriores, lo que puede ser de gr谩n ayuda para identificar la sesi贸n del usuario, el estado o incluso, guardar tokens de autenticaci贸n para identificar al usuario en cada llamada.

Las cookies no es algo que podamos ver a simple vista, pues solo se pueden ver con ayuda de herramientas que monitoren el tr谩fico HTTP, como es el caso del inspector de elementos de Chrome u otras herramientas especializadas como es el caso de Restlet, SOAPUI, postman, etc.

Desde chrome podemos ver todas las cookies que una p谩gina ha dejado en nuestro equipo, e incuso, podr铆amos agregar algunas manualmente para realizar algunas pruebas. Para verlas, solo basta abrir el inspector de elementos, dirigirse a la pesta帽a de Application y seleccionar la opci贸n de cookies, tal como podemos ver en la siguiente imagen:

cookies Inspector de elementos con Chorme

Recuperar las Cookies con JAX-RS

Mediante el API de JAX-RS es muy f谩cil de recuperar las cookies del lado del servidor, ya que solo es necesario anotar con @CookieParam alguno de los par谩metros del m茅todo Java en la cual queremos inyectar el valor de una cookie. Veamos el siguiente ejemplo que espera una cookie de autenticaci贸n llamado token:

En este ejemplo estamos el header token, el cual deber谩 tener el valor 1234, de lo contrario, mandaremos un error de autenticaci贸n.

Establecer una nueva Cookie

Otra cosa que podemos hacer es establecer una nueva cookie en el cliente, por ejemplo, podr铆amos agregar el token en caso de que este no tenga uno, veamos c贸mo quedar铆a:

Utilizamos la clase NewCookie para definir una nueva cookie que deber谩 ser creada en el cliente, dem谩s, utilizamos el m茅todo cookie de la clase Response para enviarla al cliente.

nuevo cookie

Conclusiones

A pesar de que las cookies han sido la forma tradicional de guardar los datos en el cliente, la llegada de HTML5 nuevas alternativas, como lo es el Local Storage y el Session Storage, de los cuales no hablaremos en esta ocasi贸n, pero las menciono por si quieres investigar un poco m谩s al respecto.


Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *