Well, I finally manage to do it like that:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.reactive.ReactorClientHttpConnector;
import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.config.web.server.ServerHttpSecurity;
import org.springframework.security.oauth2.jwt.NimbusReactiveJwtDecoder;
import org.springframework.security.web.server.SecurityWebFilterChain;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.netty.http.client.HttpClient;
import reactor.netty.transport.ProxyProvider;@Configuration
@EnableWebFluxSecurity
@EnableReactiveMethodSecurity
public class WebSecurityConfig
{@Bean SecurityWebFilterChain securityFilterChain( ServerHttpSecurity http ) throws Exception { http .csrf().disable(); http.authorizeExchange( ( exchange ) -> { exchange.pathMatchers( "/actuator/**" ).permitAll() .anyExchange().authenticated() .and() .oauth2ResourceServer(); } ); return http.build(); } @Bean public WebClient webClient(ReactorClientHttpConnector reactorClientHttpConnector) { return WebClient.builder().clientConnector(reactorClientHttpConnector).build(); } @Bean public HttpClient httpClient() { return HttpClient.create() .tcpConfiguration(tcpClient -> tcpClient.proxy( proxy -> proxy.type( ProxyProvider.Proxy.HTTP).host("proxhost") .port(8080))); } @Bean ReactorClientHttpConnector reactorClientHttpConnector(HttpClient httpClient) { return new ReactorClientHttpConnector(httpClient); } @Bean public NimbusReactiveJwtDecoder nimbusReactiveJwtDecoder(WebClient webClient) { return NimbusReactiveJwtDecoder .withJwkSetUri("https://{domain}.okta.com/oauth2/default/v1/keys") .webClient(webClient).build(); }
}
thanks,
regards