-
Notifications
You must be signed in to change notification settings - Fork 6.2k
Description
AuthenticationWebFilter uses the exchange object throughout its implementation. It uses it for its ServerWebExchangeMatcher, ServerAuthenticationConverter, ServerSecurityContextRepository and all its other HTTP-based collaborators.
It would be cleaner for AuthenticationWebFilter to take a ReactiveAuthenticationManagerResolver<ServerWebExchange> instead of a ReactiveAuthenticationManagerResolver<ServerHttpRequest> to align with the rest of the API.
One way to achieve this might be to add an interface like:
public interface ServerWebExchangeReactiveAuthenticationManagerResolver
extends ReactiveAuthenticationManagerResolver<ServerWebExchange> {
}And then add a constructor:
public AuthenticationWebFilter
(ServerWebExchangeReactiveAuthenticationManagerResolver resolver) {
// ...
}The downside here is that we'd have an interface that we would not otherwise have introduced.
Or, since this is a very new feature, it might be best to simply change the constructor parameter generic type to alleviate confusion. That is, change:
public AuthenticationWebFilter
(ReactiveAuthenticationManagerResolver<ServerHttpRequest> resolver) {
// ...
}to
public AuthenticationWebFilter
(ReactiveAuthenticationManagerResolver<ServerWebExchange> resolver) {
// ...
}And then document the change in the 5.3 release notes.