我正在使用 Quarkus Rest Client 与使用两个 cookie 对所有请求进行身份验证的外部服务进行通信。这两个 cookie 从身份验证 API 和每个后续 API 调用返回。有没有办法自动处理这些 cookie?目前,我正在从身份验证 API 的响应对象中获取 cookie,并使用 @CookieParam 在每个请求中手动发送它们。
问问题
151 次
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 客户端文档以获取更多信息:
于 2021-12-02T20:01:23.270 回答