Open
Description
We should align (Server|Servlet)OAuth2AuthorizedClientExchangeFilterFunction
with OAuth2ClientHttpRequestInterceptor
which introduces a PrincipalResolver
as a flexible strategy for resolving the Authentication
for a given request.
For ServletOAuth2AuthorizedClientExchangeFilterFunction
, the interface could be:
@FunctionalInterface
public interface PrincipalResolver {
@Nullable
Authentication resolve(ClientRequest request);
}
For ServerOAuth2AuthorizedClientExchangeFilterFunction
, it may need to return a Mono<Authentication>
to accommodate ReactiveSecurityContextHolder
:
@FunctionalInterface
public interface PrincipalResolver {
@Nullable
Mono<Authentication> resolve(ClientRequest request);
}