0

我正在使用 Quarkus Rest Client 与使用两个 cookie 对所有请求进行身份验证的外部服务进行通信。这两个 cookie 从身份验证 API 和每个后续 API 调用返回。有没有办法自动处理这些 cookie?目前,我正在从身份验证 API 的响应对象中获取 cookie,并使用 @CookieParam 在每个请求中手动发送它们。

4

1 回答 1

0

我没有尝试过,但你不能做这样的事情:

 //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

于 2021-12-02T20:01:23.270 回答