Java 用新的WebClient API替换Spring KerberosRestTemplate

Java 用新的WebClient API替换Spring KerberosRestTemplate,java,spring,spring-security,spring-rest,spring-security-kerberos,Java,Spring,Spring Security,Spring Rest,Spring Security Kerberos,我试图用WebClient API替换现有的Spring KerberosRestTemplate。 那么,在新的WebClient API中是否提供了对Kerberos的支持 任何帮助都将不胜感激,即使指向某些教程/文档也会有所帮助。您需要创建一个实现,该实现检查WWW Authenticate标头,然后使用授权标头重新发送请求 @覆盖 公共Mono筛选器(最终ClientRequest请求,最终ExchangeFunction下一步){ 返回next.exchange(请求) .flatMa

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

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

您需要创建一个实现,该实现检查WWW Authenticate标头,然后使用授权标头重新发送请求

@覆盖
公共Mono筛选器(最终ClientRequest请求,最终ExchangeFunction下一步){
返回next.exchange(请求)
.flatMap(响应->{
final Set headerValues=Sets.newLinkedHashSet(response.headers().header(HttpHeaders.WWW_AUTHENTICATE));
if(headerValues.contains(“协商”)){
最后一个字符串authHeader=doAs(新的CreateAuthorizationHeaderAction(userPrincipal,“HTTP/”+request.url().getHost());
最终ClientRequest authenticatedRequest=ClientRequest.from(请求)
.header(HttpHeaders.AUTHORIZATION,“协商”+authHeader)
.build();
返回next.exchange(authenticatedRequest);
}
返回Mono.just(响应);
});
}
您可以提升CreateAuthorizationHeaderAction的实现