gpt4 book ai didi

java - 用新的 WebClient API 替换 Spring KerberosRestTemplate

转载 作者:行者123 更新时间:2023-12-05 07:21:20 26 4
gpt4 key购买 nike

我正在尝试用 WebClient API 替换现有的 Spring KerberosRestTemplate。那么在新的 WebClient API 中是否提供了对 Kerberos 的支持?

任何帮助将不胜感激,即使指向一些教程/文档也会有所帮助。

最佳答案

您需要创建一个 ExchangeFilterFunction检查 WWW-Authenticate header 然后使用 Authorization header 重新发送请求的实现。

    @Override
public Mono<ClientResponse> filter(final ClientRequest request, final ExchangeFunction next) {
return next.exchange(request)
.flatMap(response -> {
final Set<String> headerValues = Sets.newLinkedHashSet(response.headers().header(HttpHeaders.WWW_AUTHENTICATE));
if (headerValues.contains("Negotiate")) {
final String authHeader = doAs(new CreateAuthorizationHeaderAction(userPrincipal, "HTTP/" + request.url().getHost()));
final ClientRequest authenticatedRequest = ClientRequest.from(request)
.header(HttpHeaders.AUTHORIZATION, "Negotiate " + authHeader)
.build();
return next.exchange(authenticatedRequest);
}
return Mono.just(response);
});
}

您可以解除 CreateAuthorizationHeaderAction 的实现 here .

关于java - 用新的 WebClient API 替换 Spring KerberosRestTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56954026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com