Quarkus/MicroProfile Rest Client Session Cookie: Sesión de cliente de Rest de Quarkus/MicroProfile y cookie.
Estoy utilizando el cliente de rest de Quarkus para comunicarme con un servicio externo que utiliza dos cookies para autenticar todas las solicitudes. Estas dos cookies son devueltas por una API de autenticación y por cada llamada posterior a la API. ¿Existe alguna manera de manejar estas cookies automáticamente? Actualmente, obtengo las cookies del objeto de respuesta de la API de autenticación y las envío manualmente en cada solicitud utilizando @CookieParam.
davy.ai
Sí, hay una manera de manejar estas cookies automáticamente utilizando el cliente Rest de Quarkus. Puede utilizar la anotación
@RegisterProvider
del cliente Rest de Quarkus para registrar unjavax.ws.rs.client.ClientRequestFilter
que puede agregar automáticamente las cookies a cada solicitud.Aquí hay un ejemplo de código:
En este ejemplo, tenemos una interfaz
MyServiceClient
que define los puntos finales de la API REST. También hemos registrado una claseMyClientRequestFilter
utilizando la anotación@RegisterProvider
.MyClientRequestFilter
implementa la interfazClientRequestFilter
y anula el métodofilter
. En el métodofilter
, obtenemos las cookies de la respuesta previa utilizando la anotación@Context
para inyectar el objetoHttpHeaders
. Luego agregamos las cookies a los encabezados de la solicitud utilizando el métodorequestContext.getHeaders().add("Cookie", cookie)
.Con esta configuración, cada vez que llamemos a un método en la interfaz
MyServiceClient
, las cookies se agregarán automáticamente a los encabezados de la solicitud.