Файл cookie сеанса Quarkus / МикроПрофиля Rest-клиента

#cookies #quarkus #quarkus-rest-client

#файлы cookie #quarkus #quarkus-rest-client

Вопрос:

Я использую клиент Quarkus Rest для связи с внешней службой, которая использует два файла cookie для аутентификации всех запросов. Эти два файла cookie возвращаются из API аутентификации и из каждого последующего вызова API. Есть ли способ автоматически обрабатывать эти файлы cookie? В настоящее время я получаю файлы cookie из объекта ответа API аутентификации и вручную отправляю их в каждом запросе, используя @CookieParam.

Ответ №1:

Я еще не пробовал, но разве ты не можешь сделать что-то подобное:

  //pseudo code !!!
@RestClient
public interface UsersClient {

  @POST
  String backendCall(@CookieParam("Token1") token1, @CookieParam("Token2") String token2)

  @POST
  Map<String,String> authenticate(String param)

   default String makeCall(String param) {
       var tokens = authenticate(param);
       return backendCall(tokens.get(0), tokens.get(1));
   }
}
 

Из своего сервиса вы вводите этот клиент rest и вызываете метод makeCall(…). Это должно аутентифицировать вас на вашем сервере, использовать токены из ответа и отправлять их в виде файлов cookie на серверный вызов.

Приношу извинения за любые ошибки в коде: я написал его со своего планшета. Но я надеюсь, что идея понятна.

А также проверьте документацию клиента Microprofile Rest для получения дополнительной информации:

https://download.eclipse.org/microprofile/microprofile-rest-client-2.0/microprofile-rest-client-spec-2.0.html#_sample_definitions

Комментарии:

1. Спасибо за ваш ответ, но это касается только одного вызова после аутентификации. он не сохраняет токены для последующих вызовов. Я подумывал о том, чтобы обернуть мой клиент rest с помощью компонента с одноэлементной областью запроса и сохранить там файлы cookie.