#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 для получения дополнительной информации:
Комментарии:
1. Спасибо за ваш ответ, но это касается только одного вызова после аутентификации. он не сохраняет токены для последующих вызовов. Я подумывал о том, чтобы обернуть мой клиент rest с помощью компонента с одноэлементной областью запроса и сохранить там файлы cookie.