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);
}
Comment From: evgeniycheban
Hi, @sjohnr can I work on this?
Comment From: jgrandja
@evgeniycheban Are you still interested on working on this?
Comment From: evgeniycheban
Hi @jgrandja, yes, you can assign it to me, however at the moment I'm working on gh-17188, I will submit a draft solution in a few days so we can discuss it further.
Comment From: jgrandja
Thanks and no rush @evgeniycheban. I have quite a bit going on now.